線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1741
推到 Plurk!
推到 Facebook!

Access作資料庫刪除和新增的問題

答題得分者是:tech_state
pandaforme
一般會員


發表:10
回覆:15
積分:5
註冊:2003-07-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-19 22:21:26 IP:61.66.xxx.xxx 未訂閱
我用insert這method去增加好幾筆資料 但是為什麼到最後 tabel只剩下最後一 筆資料 假如一開始Access裡面有資料的話 那我要增加的筆數都可以全部在 tabel顯示 假如是空的話 只會顯示最後一筆資料 還有我想把資料庫的資料全部刪除 用emptytable這method去刪除是可以 但是刪除完後要繼續insert好幾筆資料 結果也是顯示最後一筆 論壇的文章 和 程式碼我都試過 看過了 結果還是一樣 只會顯示最後一筆 假如一開始是空的資料庫 我的程式是那麼寫的: Tabel1->Open(); Tabel1->Insert(); Tabel1Line->Value = "xxx"; Table1Label->Value = "aaa"; Table1->Post(); Tabel1->Insert(); . . . 繼續insert好幾筆資料 Table1->Post(); //清除所有的資料 Table1->Close(); Table1->EmptyTabel(); 不知道我這樣寫 是不是哪裡出了錯 請各位大大幫我指出哪裡錯 謝謝你們
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-19 23:53:12 IP:203.204.xxx.xxx 未訂閱
pandaforme, 您好 看不出您的問題點在哪裡, 方便的話可否上傳您的Project和Database, 這樣大家比較知道如何幫您。    會員求助程式檔案上傳區 http://delphi.ktop.com.tw/forum.asp?FORUM_ID=97 ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
pandaforme
一般會員


發表:10
回覆:15
積分:5
註冊:2003-07-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-20 10:13:12 IP:61.66.xxx.xxx 未訂閱
因為程式碼很長 所以我把主要的Po上來 希望版主大人可以幫我解答 Form2->Table1->Open(); Form2->Table1->Insert(); Form2->Table1Line->Value = LineTemp ; Form2->Table1Location->Value = source[next].Loc; Form2->Table1Label->Value = source[next].Label; Form2->Table1OPcode->Value = source[next].OPcode; Form2->Table1OPerand->Value = source[next].Operand; Form2->Table1ObjectCode->Value = source[next].ObjectCode; Form2->Table1->Post(); 之後就是經過一些迴圈 和 if 的判斷 決定 繼續Insert資料 Form2->Table1->Insert(); Form2->Table1Line->Value = LineTemp ; Form2->Table1Location->Value = source[next].Loc; Form2->Table1Label->Value = source[next].Label; Form2->Table1OPcode->Value = source[next].OPcode; Form2->Table1OPerand->Value = source[next].Operand; Form2->Table1ObjectCode->Value = source[next].ObjectCode; Form2->Table1->Post(); 然後程式就結束了 假如一開始Access都沒有任何資料在裡面 Form2的Table 只會跑出最後一筆 Insert的資料 其他的資料都不見了 然後我執行第二次 結果是連第一次Insert的資料和這次Insert的資料一起跑出 來 是我的程式碼部分錯 還是 Access設定有錯呢 煩請版主大人的回覆
pandaforme
一般會員


發表:10
回覆:15
積分:5
註冊:2003-07-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-20 14:45:08 IP:61.66.xxx.xxx 未訂閱
說簡單一點就是一開始access裡面是空的insert一筆資料只會顯示那一筆資料    之前有insert進去的都不會顯示出來 但是實際上有insert進去     當access有資料不是空的 那insert資料就會顯示出來了 連上次insert的也會顯    示出來 為什麼會這樣阿 請各位好心的大大幫我解答一下吧 我已經想了一天還    是不知道錯哪裡 :<    
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-20 18:56:33 IP:203.204.xxx.xxx 未訂閱
pandaforme, 您好 你是否有透過DBGrid來顯示資料? 由您的提供的code,真的看不出問題到底出在哪裡。 或許您可以試試看在Table1->Post();之後,加上以下的code試試看。  
Table1->Active = false;
Table1->Active = true;
或是
Table1->Refresh();
 
如果還是有問題,而您又不方便上傳您的Project和Database,那只能請您再說說您的Database的結構及設定。不然真的愛莫能助了。 ================================= <>涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 <>是非終日有,不聽自然無 <>天下本無事,庸人自擾之
pandaforme
一般會員


發表:10
回覆:15
積分:5
註冊:2003-07-18

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-20 20:04:00 IP:61.66.xxx.xxx 未訂閱
我今天下午改用ADO連就沒有這問題了 用BDE連就有好怪喔 :< 我還有一個問題要麻煩各位大大了 就是怎麼刪除整個資料庫的資料 假如是用ADO連的 是用ADOTable1->DeleteRecords(arAll)去刪嗎 我用了這函式後 就會一直產生這個例外 Connot perform this operation a closed dataset 我也有把ADOTable1->Open() 在執行ADOTable1->DeleteRecords(arAll) 結果還是一樣 再麻煩一次大家了 也很感謝版主很熱心幫我回答
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-07-20 21:16:13 IP:203.204.xxx.xxx 未訂閱
pandaforme, 您好 使用DeleteRecords是有Database限制的,以下是由Help檔找到的限制說明,我想Access應該是不支援這個Method吧! If the recordset does not support record deletions, an exception is thrown.    另外,如果要做到這個功能,可以改用TADOQuery這個元件,以下的code供您參考看看。  
   ADOQuery1->Close();
   ADOQuery1->SQL->Text = "delete from Table_Name";
   ADOQuery1->ExecSQL();
 
================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
pandaforme
一般會員


發表:10
回覆:15
積分:5
註冊:2003-07-18

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-07-21 19:50:46 IP:61.66.xxx.xxx 未訂閱
謝謝各為大家熱心的回答 由於我是第一次寫資料庫的程式 所以有一大堆問題 很感謝版主熱心的回答 謝謝:>
系統時間:2024-04-24 22:30:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!