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

如何讓兩個DBLookupComboBox相連結?

尚未結案
zeke
一般會員


發表:6
回覆:8
積分:2
註冊:2004-02-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-08 19:36:31 IP:61.216.xxx.xxx 未訂閱
有三個TABLE分別是零件規格表,廠商資料表,零件需求表 零件規格表中有一欄位為廠商代碼supp_code 於是製作了一份零件需求單使用了兩個DBLookupComboBox, DBLookupComboBox1用於廠商代碼supp_code DBLookupComboBox2是所購買的零件編號cs_num 我想讓DBLookupComboBox2的cs_num依照我DBLookupComboBox1所選的supp_code顯示 DBLookupComboBox設定如下 DBLookupComboBox1 DataField : supp_code DataSource : need_form.DataSource1 ListField : supp_code ListField : supp_code ListSource : supp_form.DataSource1 DBLookupComboBox2 DataField : cs_num_1 DataSource : need_form.DataSource1 ListField : cs_num ListField : cs_num ListSource : cstore_form.DataSource1 麻煩前輩們指導,謝謝!!!
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-08 19:52:57 IP:211.76.xxx.xxx 未訂閱
您好: 您可以在DBLookupComboBox1CloseUp事件中 去下DBLookupComboBox1 Dataset的SQL語法在WHERE子句中以supp_code為篩選條件,就可以了 ~~應無所住而生其心~~
zeke
一般會員


發表:6
回覆:8
積分:2
註冊:2004-02-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-08 21:39:54 IP:61.216.xxx.xxx 未訂閱
to terrychen    我在From上面又增加了一個ADOQuery,因為原本的ADOQuery已經被使用了 程式如下 procedure Tneed_add_form.DBLookupComboBox1CloseUp(Sender: TObject); begin ADOQuery2.Close; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('select cs_num from C_store'); ADOQuery2.SQL.Add('where supp_code = :Q1'); ADOQuery2.Parameters.ParamByName('Q1').Value := DBLookupComboBox1.Text; ADOQuery2.Open; DBLookupComboBox2.Text := ADOQuery2.FieldByName('cs_num').AsString; end;    我目前遇到的問題是 使用DBLookupComboBox如 DBLookupComboBox2.Text := ADOQuery2.FieldByName('cs_num').AsString; 會出現can't assign to a read-only property.    使用ComboBox如 ComboBox1.Text := ADOQuery2.FieldByName('cs_num').AsString; 程式執行後, 應該顯示多筆資料的COMBOX1,裡面卻只有顯示一筆資料!    煩請各位前輩指導了    
引言: 您好: 您可以在DBLookupComboBox1CloseUp事件中 去下DBLookupComboBox1 Dataset的SQL語法在WHERE子句中以supp_code為篩選條件,就可以了 ~~應無所住而生其心~~
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-08 21:47:49 IP:218.15.xxx.xxx 未訂閱
zeke您好: TDBLookUpComboBox控件可以同时与两个数据源相链接,一个是主数据源Datasource,另一个是二级数据源ListSource。在主数据源和二级数据源中,必须有意义完全相同的两个字段,称之为查找字段(或关键字段),分别设置为TDBLookUpComboBox的DataField和KeyField属性,ListField属性用于设定显示字段,显示字段来自于二级数据源ListSource。    所以: DBLookupComboBox1 DataField : supp_code DataSource : cstore_form.DataSource1……》指向零件需求表 ListField : supp_code KeyField : supp_code ListSource : supp_form.DataSource1……》指向廠商資料表 DBLookupComboBox2 DataField : supp_code DataSource : supp_form.DataSource1 KeyField : supp_code ListField : cs_num ListSource : cstore_form.DataSource1 看下是不是您所要的结果! ——行径窄处,留一步与人行——
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-08 21:55:28 IP:218.15.xxx.xxx 未訂閱
引言: to terrychen 我在From上面又增加了一個ADOQuery,因為原本的ADOQuery已經被使用了 程式如下 procedure Tneed_add_form.DBLookupComboBox1CloseUp(Sender: TObject); begin ADOQuery2.Close; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('select cs_num from C_store'); ADOQuery2.SQL.Add('where supp_code = :Q1'); ADOQuery2.Parameters.ParamByName('Q1').Value := DBLookupComboBox1.Text; ADOQuery2.Open; end; DBLookupComboBox2.Text := ADOQuery2.FieldByName('cs_num').AsString;调整此句的位置 我目前遇到的問題是 使用DBLookupComboBox如 DBLookupComboBox2.Text := ADOQuery2.FieldByName('cs_num').AsString; 會出現can't assign to a read-only property. 使用ComboBox如 ComboBox1.Text := ADOQuery2.FieldByName('cs_num').AsString; 程式執行後, 應該顯示多筆資料的COMBOX1,裡面卻只有顯示一筆資料! for i:=0 to ADOQuery.count-1 do ComboBox1.Text := ADOQuery2.FieldByName('cs_num').AsString; 这样才能得到所有满足条件的记录 煩請各位前輩指導了
引言: 您好: 您可以在DBLookupComboBox1CloseUp事件中 去下DBLookupComboBox1 Dataset的SQL語法在WHERE子句中以supp_code為篩選條件,就可以了 ~~應無所住而生其心~~
——行径窄处,留一步与人行——
系統時間:2024-06-28 19:39:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!