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

有關ComboBox取值時,無法取得迴圈資料~

答題得分者是:T.J.B
t0288542
中階會員


發表:216
回覆:254
積分:94
註冊:2004-10-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-28 10:39:16 IP:61.221.xxx.xxx 未訂閱
請問各位一下~ 以下是我利用ComboBox來作取值的動作~但是每次跑到 If IsEmpty then Exit;時就會發生問題~ 我己經檢查過應該是沒有打錯~ 另外如只單純秀值時~它是可以取到第一筆資料~ 跑迴圈時就會發生問題~ 請問我是那裡設定有問題嗎~ 另外SQL文是正確且有多筆資料~ procedure TForm1.DBComboBox1DropDown(Sender: TObject); var bx:string; begin ADOQuery2.Close; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('SELECT A.MD001,A.MD002,B.MX001,B.MX003 '); ADOQuery2.SQL.Add('FROM CMSMD A LEFT OUTER JOIN CMSMX B '); ADOQuery2.SQL.Add('ON A.MD001 = B.MX002 '); ADOQuery2.SQL.Add('WHERE A.MD001=''001'' '); ADOQuery2.SQL.Add('ORDER BY B.MX001 '); ADOQuery2.Open; If IsEmpty then Exit; While not eof bx:=ADOQuery2.FieldByName('MX001').AsString; showmessage('22222222' bx); Next; end; thk^^
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-28 10:49:18 IP:202.39.xxx.xxx 未訂閱
加入紅色部份:
procedure TForm1.DBComboBox1DropDown(Sender: TObject);
var 
  bx:string;
begin
       ADOQuery2.Close;
       ADOQuery2.SQL.Clear;
       ADOQuery2.SQL.Add('SELECT         A.MD001,A.MD002,B.MX001,B.MX003 ');
       ADOQuery2.SQL.Add('FROM         CMSMD A LEFT OUTER JOIN CMSMX B ');
       ADOQuery2.SQL.Add('ON         A.MD001 = B.MX002 ');
       ADOQuery2.SQL.Add('WHERE         A.MD001=''001'' ');
       ADOQuery2.SQL.Add('ORDER BY B.MX001 ');
       ADOQuery2.Open;           If ADOQuery2.IsEmpty then Exit; // 這行可以不要
       While not ADOQuery2.eof do
       begin
          bx := ADOQuery2.FieldByName('MX001').AsString;
          showmessage('22222222'   bx);
          ADOQuery2.Next;
       end;
end;
發表人 - hagar 於 2004/10/28 10:51:37
t0288542
中階會員


發表:216
回覆:254
積分:94
註冊:2004-10-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-28 15:02:19 IP:61.221.xxx.xxx 未訂閱
謝謝~ 不好意思~初接觸delphi所以許多屬性並不很清楚~ ComboBox己經有取得資料~ 但是為什麼點選下拉式時資料無法停留在ComboBox內呢~ 是不是那個屬性沒有設定到~ ^^
T.J.B
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-28 15:48:57 IP:211.75.xxx.xxx 未訂閱
引言: 謝謝~ 不好意思~初接觸delphi所以許多屬性並不很清楚~ ComboBox己經有取得資料~ 但是為什麼點選下拉式時資料無法停留在ComboBox內呢~ 是不是那個屬性沒有設定到~ ^^
你是否有在程式碼中去控制當點選的時候 ComboBox1.ItemIndex 的屬性都固定為同一個值 如果有 把它拿掉就行了 天行健 君子當自強不息~~@.@
------
天行健
君子當自強不息~~@.@
colinliu
一般會員


發表:0
回覆:1
積分:0
註冊:2004-10-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-28 15:58:11 IP:210.75.xxx.xxx 未訂閱
同意樓上。。。。
t0288542
中階會員


發表:216
回覆:254
積分:94
註冊:2004-10-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-10-28 16:35:44 IP:61.221.xxx.xxx 未訂閱
謝謝~ 但是我在Combox中只有設定上逑的程式碼~ 並不沒有設定任何的動作呢~
T.J.B
版主


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-10-28 17:32:48 IP:211.75.xxx.xxx 未訂閱
把程式碼全部貼上來看看 應該不只上面這些 天行健 君子當自強不息~~@.@
------
天行健
君子當自強不息~~@.@
t0288542
中階會員


發表:216
回覆:254
積分:94
註冊:2004-10-06

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-10-28 20:37:16 IP:59.104.xxx.xxx 未訂閱
不好意思~ 我大約把程式解釋一下~ 畫面上combobox中內容主要是要帶出sql文篩選的某個欄位~ 所以,我將程式處理都寫在DBComboBox1DropDown的事件中~ 當我點選下拉式時~我所要內容都有秀出來~ 問題是當選定某個值卻是無法秀在畫面上~ 奇怪的是我沒有任何地方有對ComboBox作設定~ 另外~可否問一下~ 為什麼程式在執行過程發生問題後~ 突然再按執行就無法作執行動作~ 這樣我程式就重寫嗎~或者我可利用此表單另存於另個專案呢~ 怎麼問題變多~ 謝謝~麻煩各位~
T.J.B
版主


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-10-29 10:31:06 IP:211.75.xxx.xxx 未訂閱
引言: 不好意思~ 我大約把程式解釋一下~ 畫面上combobox中內容主要是要帶出sql文篩選的某個欄位~ 所以,我將程式處理都寫在DBComboBox1DropDown的事件中~ 當我點選下拉式時~我所要內容都有秀出來~ 問題是當選定某個值卻是無法秀在畫面上~ 奇怪的是我沒有任何地方有對ComboBox作設定~ 另外~可否問一下~ 為什麼程式在執行過程發生問題後~ 突然再按執行就無法作執行動作~ 這樣我程式就重寫嗎~或者我可利用此表單另存於另個專案呢~ 怎麼問題變多~ 謝謝~麻煩各位~
剛剛試了一下 因為你用的是DbCombobox 資料感知元件 所以要設定DbCombobox上的Datasource及Datafield兩個屬性才有用 你就是因為沒設定 所以顯示不出來啦 去看看吧 天行健 君子當自強不息~~@.@
------
天行健
君子當自強不息~~@.@
t0288542
中階會員


發表:216
回覆:254
積分:94
註冊:2004-10-06

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-10-29 14:09:52 IP:61.221.xxx.xxx 未訂閱
謝謝T.J.B~ 我了解你的意思~ 如此我可能必需建立DataSource元件~ 將SQL文包在ADOQuery內設定Datafield指定要秀的那個欄位值~ 這樣是ok沒錯~ 但是原本在DBComboBoxDropDown內所處理程式碼就失去意思~ 我試著將DBComboBox1.DataField := 'MX001';寫在此事件中~ 似乎一樣沒有反應~ 不過謝謝你的幫忙~
系統時間:2024-06-02 1:11:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!