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

請問那裡的程式錯誤了?

答題得分者是:william
annie
一般會員


發表:5
回覆:6
積分:2
註冊:2002-12-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-01-10 09:26:36 IP:218.32.xxx.xxx 未訂閱
請問:以下是我的程式,我的原意是在表單1修改編號後,再次在dbedit1上點一下再按F2,開啟的所有編號表(表單2),會自動修改剛才輸入的編號,不是新增而是在該筆記錄上直接修改,可是我沒有辦法讓表單2的記錄馬上修改成功,必須把應用程式關掉再重開,才能看到已修改,請問那裡的程式錯誤了? 表單1:有DbEdit1,adoconnection,adodataset,datasource procedure Tpart5_1.FormCreate(Sender: TObject); begin dsetfactory.Active:=true; end; procedure Tpart5_1.Button1Click(Sender: TObject); begin part5_1.dsetfactory.Edit; part5_1.dsetfactory['廠商編號']:=dbedit1.Text; part5_1.dsetfactory.Post; part5_1.dsetfactory.Active:=true; end; procedure Tpart5_1.DBEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if ord(key)=113 then part5_1_1.Show; end; 表單2:顯示所有編號的資料,有DbGrid,adoconnection ,adodataset,datasource procedure Tpart5_1_1.FormCreate(Sender: TObject); begin part5_1_1.dset1.Active:=true; part5_1_1.dset1.Edit; part5_1_1.dset1['廠商編號']:=part5_1.DBEdit1.Text; part5_1_1.dset1.Post; end; procedure Tpart5_1_1.Button1Click(Sender: TObject); begin part5_1_1.close; end; procedure Tpart5_1_1.dset1AfterScroll(DataSet: TDataSet); begin part5_1.dsetfactory.Active:=false; part5_1.dsetfactory.Parameters.ParamByName('no').Value:=part5_1_1.adoquery1['廠商編號']; part5_1.dsetfactory.Active:=true; end;
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-01-10 09:36:18 IP:147.8.xxx.xxx 未訂閱
You may want to look for TADODataSet.UpdateBatch
annie
一般會員


發表:5
回覆:6
積分:2
註冊:2002-12-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-01-10 10:34:16 IP:218.32.xxx.xxx 未訂閱
引言: You may want to look for TADODataSet.UpdateBatch >< face="Verdana, Arial, Helvetica"> 不了解你的意思?
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-01-10 10:43:20 IP:211.74.xxx.xxx 未訂閱
參考一下這篇. http://delphi.ktop.com.tw/topic.php?TOPIC_ID=23330
引言: 不了解你的意思?
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-01-10 10:49:51 IP:147.8.xxx.xxx 未訂閱
引言:不了解你的意思?
http://delphi.ktop.com.tw/topic.php?topic_id=20411 I think closing the application is same as closing the ADOConnection and open it again.
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-01-10 10:54:10 IP:61.220.xxx.xxx 未訂閱
你可以在表單2的onshow事件加上 dset1.close; dset1.open; 應該就可以了 天行健 君子當自強不息~~@.@
------
天行健
君子當自強不息~~@.@
annie
一般會員


發表:5
回覆:6
積分:2
註冊:2002-12-22

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-01-11 00:19:23 IP:218.32.xxx.xxx 未訂閱
在更改按鈕按下後,Form2的dbgrid中,雖然大致上可順利修改,但是有時還是有些值會跑到dbgrid的最下一筆記錄中,形成只有編號的新記錄(最多只有兩筆),怎麼改呢? Form1:edit1--輸入舊編號,edit2--輸入新編號,button1--變更 procedure Tpart5_1.FormCreate(Sender: TObject); begin dsetfactory.Active:=true; end; procedure Tpart5_1.Button1Click(Sender: TObject); var f:boolean; begin part5_1.dsetfactory.Edit; part5_1.dsetfactory['廠商編號']:=edit1.Text; part5_1.dsetfactory.Post; //part5_1.dsetfactory.UpdateBatch(arall); part5_1.dsetfactory.Active:=true; part5_1_1.dset1.Close; part5_1_1.dset1.Open; f:=part5_1_1.dset1.Locate('廠商編號',part5_1.Edit1.Text,[locaseinsensitive]); if f=true then begin part5_1_1.dset1.Edit; // part5_1_1.dset1['廠商編號']:=''; part5_1_1.dset1['廠商編號']:=part5_1.Edit2.Text; edit3.Text:=edit2.Text; edit2.Text:=''; part5_1_1.dset1.Post; part5_1_1.dset1.Active:=true; end; end; procedure Tpart5_1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if ord(key)=113 then part5_1_1.Show; end; Form2:顯現所有編號資料 procedure Tpart5_1_1.Button1Click(Sender: TObject); begin part5_1_1.close; end; procedure Tpart5_1_1.dset1AfterScroll(DataSet: TDataSet); var f:boolean; begin part5_1.dsetfactory.Active:=false; part5_1.dsetfactory.Parameters.ParamByName('no').Value:=part5_1_1.dset1['廠商編號']; part5_1.dsetfactory.Active:=true; part5_1_1.dset1.Active:=true; f:=part5_1_1.dset1.Locate('廠商編號',part5_1.Edit1.Text,[locaseinsensitive]); if f=true then begin part5_1_1.dset1.Edit; part5_1_1.dset1['廠商編號']:=part5_1.Edit2.Text; part5_1_1.dset1.Post; part5_1_1.dset1.Active:=true; end; end; procedure Tpart5_1_1.FormShow(Sender: TObject); begin dset1.Close; dset1.Open; end; procedure Tpart5_1_1.FormActivate(Sender: TObject); begin dset1.Active:=true; part5_1_1.dset1.Active:=true; 因為時間緊迫,請高手多多指點,謝謝!!! 發表人 - annie 於 2003/01/12 01:03:45
系統時間:2024-06-18 20:00:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!