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

無法傳回另一Form 值

尚未結案
lilisn
一般會員


發表:35
回覆:62
積分:24
註冊:2003-03-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-19 15:37:17 IP:61.228.xxx.xxx 未訂閱
有兩個Form (Form1,Form2) procedure Form2.BitBtn1Click(Sender: TObject); begin Form1.DBEdit9.Text:=Trim(edit1.Text); // showmessage(Form1.DBEdit9.Text); // 顯示有資料 Form1.DBEdit9.SetFocus; Close; end; 為何回到Form1的 DBedit9.Text 仍是空白 兩個unit1,unit2 多有相互uses
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-19 15:48:28 IP:61.10.xxx.xxx 未訂閱
因為dbEdit 的 Text 是沒用的,會被 dbEdit 連到的 field 的 Value 取替。 所以,你應將資料直接傳給 field 如 : Form1.dbEdit9.field.AsString := Trim(edit1.Text); 或 Form1.Table1Field1.AsString := Trim(edit1.Text); 或 Form1.Table1.FieldByName('Field1').AsString := Trim(edit1.Text);
lilisn
一般會員


發表:35
回覆:62
積分:24
註冊:2003-03-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-19 16:02:51 IP:61.228.xxx.xxx 未訂閱
[quote] Form1.Adoquery.FieldByName('zaddress').AsString := Trim(edit1.Text); 會出現dataset not in edit or insert made error message 我是疏忽那理了? 謝謝 第二階段test Form1.ADOQuery1.SQL.Clear; Form1.ADOQuery1.SQL.Add('update company set '); Form1.ADOQuery1.SQL.Add('zaddress = ''' Edit1.Text ''' '); Form1.ADOQuery1.ExecSQL; 此寫法就可以,是否等於要先update, 不能直接暫時顯示在畫面,當user按save才去做update? 發表人 - lilisn 於 2003/04/19 16:14:00 發表人 - lilisn 於 2003/04/19 16:16:42
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-19 16:59:53 IP:61.10.xxx.xxx 未訂閱
DataSet 要在 edit/insert mode 才能更改資料 你若是想改現有資料 你可改為 : if not (Form1.Adoquery.state in [dsEdit,dsInsert]) then Form1.Adoquery.Edit; Form1.Adoquery.FieldByName('zaddress').AsString := Trim(edit1.Text);
chih
版主


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-19 18:27:17 IP:61.216.xxx.xxx 未訂閱
Form1.ADOQuery1.Close; Form1.ADOQuery1.SQL.Clear; Form1.ADOQuery1.SQL.Add('update company set '); Form1.ADOQuery1.SQL.Add('zaddress = ' #39 Edit1.Text #39); //底下這句是有key值再加上去,XXX是你的Key欄位名稱,ABC是你的值 Form1.ADOQuery1.SQL.Add('WHERE XXX= ' #39 ABC #39); Form1.ADOQuery1.ExecSQL;
引言: 第二階段test Form1.ADOQuery1.SQL.Clear; Form1.ADOQuery1.SQL.Add('update company set '); Form1.ADOQuery1.SQL.Add('zaddress = ''' Edit1.Text ''' '); Form1.ADOQuery1.ExecSQL; 此寫法就可以,是否等於要先update, 不能直接暫時顯示在畫面,當user按save才去做update?
lilisn
一般會員


發表:35
回覆:62
積分:24
註冊:2003-03-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-21 17:26:15 IP:61.228.xxx.xxx 未訂閱
引言: [blue] Form1.ADOQuery1.Close; Form1.ADOQuery1.SQL.Clear; Form1.ADOQuery1.SQL.Add('update company set '); Form1.ADOQuery1.SQL.Add('zaddress = ' #39 Edit1.Text #39); //底下這句是有key值再加上去,XXX是你的Key欄位名稱,ABC是你的值 Form1.ADOQuery1.SQL.Add('WHERE XXX= ' #39 ABC #39); Form1.ADOQuery1.ExecSQL; 謝謝提醒?
lilisn
一般會員


發表:35
回覆:62
積分:24
註冊:2003-03-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-21 17:32:44 IP:61.228.xxx.xxx 未訂閱
引言: procedure Form2.BitBtn1Click(Sender: TObject); begin if not (Form1.Adoquery.state in [dsEdit,dsInsert]) then begin Form1.Adoquery.Edit; Form1.Adoquery.FieldByName('zaddress').AsString := Trim(edit1.Text); end; 是有run Form1.Adoquery.Edit; ..... 可是回到form1並沒有更改,還是原值, 為何ㄋ?
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-04-21 17:38:18 IP:211.21.xxx.xxx 未訂閱
引言:
引言: procedure Form2.BitBtn1Click(Sender: TObject); begin if not (Form1.Adoquery.state in [dsEdit,dsInsert]) then begin Form1.Adoquery.Edit; Form1.Adoquery.FieldByName('zaddress').AsString := Trim(edit1.Text); end; Form.Adoquery.Refresh; 或 Form.Adoquery.Close; Form.Adoquery.Open; 是有run Form1.Adoquery.Edit; ..... 可是回到form1並沒有更改,還是原值, 為何ㄋ?
------
~小弟淺見,參考看看~
lilisn
一般會員


發表:35
回覆:62
積分:24
註冊:2003-03-09

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-04-21 19:33:55 IP:61.228.xxx.xxx 未訂閱
ㄉ謝各位高手指導 [/quote]
系統時間:2024-05-05 2:09:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!