全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1065
推到 Plurk!
推到 Facebook!

DBGrid 編輯資料後post的問題

尚未結案
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-16 19:52:24 IP:219.145.xxx.xxx 未訂閱
各位先進好! 請問使用ado連接資料庫(Access 2000) 希望在DBGrid上編輯資料後:即使cursor沒有移動,也能將修改後的結果自動post. 請問應該如何做?
pgdennis
資深會員


發表:41
回覆:526
積分:443
註冊:2002-05-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-16 23:07:36 IP:203.67.xxx.xxx 未訂閱
那這樣有一個問題,程式要如何知道你已經輸入完畢???? 除非你想使用者每敲鍵盤的字就存一次... 永遠追不上技術更新的速度
------
星期一,二...無窮迴圈@@
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-17 00:07:31 IP:63.84.xxx.xxx 未訂閱
您好!    這里涉及到一個触發Post方法的事件問題, 您需要先考慮將Post方法放在哪一個事件中.    小弟日前在實做中有寫到這樣一段程式碼, 在使用者在DBGrid元件中對資料進行修改或者新增, 按下回車鍵時自動移動同一筆資料錄的下一個欄位上, 通過判斷其鍵入的欄位是否為該筆資料的最后一個欄位, 如果是的話, 在DBGrid元件的OnKeyPress事件中, 就自動做一個Post的動作, 不知這樣是否可完成您的需求, 相關程式碼如下:
DBGrid元件的OnKeyPress事件中:
begin
  if Key=#13 then
    begin
      if DBGrid1.SelectedIndex<(DBGrid1.FieldCount)-1 then
        begin
          DBGrid1.SelectedIndex := DBGrid1.SelectedIndex 1;
        end
      else
        begin
          ADOTable1.Post;
        end;
    end;
end;
//如果是修改資料需要在Post之后再回到原來的資料錄, 則可先宣告一個
//字串變數, 在Edit之前記錄下該筆資料的鍵值欄位, 完成Post之后, 再根据這
//個字串變數, 使用Locate方法將資料表指針指向這筆資料.
參考看看! ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-21 13:26:28 IP:219.145.xxx.xxx 未訂閱
感謝兩位前輩的回應! 兩位前輩都提到一個問題:怎樣判斷已輸入完畢?     我想分別在   
 
  Form1   的 OnCloseQuery   Event
  DBGrid1 的 OnExit         Event
  
都判斷:
   With ADOQuery1  do
   begin 
    if (state in [dsEdit, dsInsert]) and (Modified) then 
       Post; 
   end;
  
這樣做合適嗎,有不當之處請前輩指點,謝謝!
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-21 14:36:50 IP:63.84.xxx.xxx 未訂閱
您好﹗    根据您的要求來看﹐將程式碼寫在這兩個事件中應該可以﹒    參考看看﹗    ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
系統時間:2024-04-27 20:37:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!