為何DBLookupListBox的 ListField 及KeyField值無法更新? |
答題得分者是:Justmade
|
tangkh
一般會員 ![]() ![]() 發表:26 回覆:28 積分:10 註冊:2002-09-11 發送簡訊給我 |
當我第二次呼叫下列子程序時,SJDBLookupListBox.ListField := DbLookStr;
及 SJDBLookupListBox.KeyField:= DbLookStr;為何會出現找不到欄位錯誤?
請各位先進指教,萬分感謝!
procedure QueryFind(TblStr,WhereStr,DbLookStr : string);
var
SQLstr : string;
begin
SQLstr := 'select * from ' TblStr;
SQLstr := SQLstr ' where ' WhereStr ' like ''%' InputEdit.Text '%''';
qWorkAllSearch.SQL.Clear;
qWorkAllSearch.Active := false;
qWorkAllSearch.SQL.Text := SQLstr;
qWorkAllSearch.Active := true;
SJDBLookupListBox.ListSource := qWorkAllSearchDS;
SJDBLookupListBox.ListField := DbLookStr;
SJDBLookupListBox.KeyField := DbLookStr;
end;
|
suckin
一般會員 ![]() ![]() 發表:13 回覆:26 積分:7 註冊:2003-06-16 發送簡訊給我 |
procedure QueryFind(TblStr,WhereStr,DbLookStr : string);
var
SQLstr : string;
begin
SQLstr := 'select * from '+TblStr;
SQLstr := SQLstr+' where '+WhereStr+' like ''%' + InputEdit.Text + '%''';
qWorkAllSearch.SQL.Clear;
qWorkAllSearch.Active := false;
qWorkAllSearch.SQL.Text := SQLstr;
qWorkAllSearch.Active := true;
SJDBLookupListBox.ListSource := qWorkAllSearchDS;
SJDBLookupListBox.ListField := DbLookStr;
SJDBLookupListBox.KeyField := DbLookStr;
end 應該是先 close query 再 Clear Query.SQL
qWorkAllSearch.Active := false;
qWorkAllSearch.SQL.Clear;
qWorkAllSearch.SQL.Text := SQLstr;
qWorkAllSearch.Active := true; [/b]
|
tangkh
一般會員 ![]() ![]() 發表:26 回覆:28 積分:10 註冊:2002-09-11 發送簡訊給我 |
suckin 感謝您的回覆,但問題仍會出現。
問題應該是:當我的SQLstr 的TblStr改變時,
而SJDBLookupListBox.KeyField 仍然記著前一次的值,
也就是說當第二次再呼叫子程序時Query在Active時會找不到之前的欄位,我應該如何使Query完全初始,並清除所有的設定值呢?再一次請教各位!感謝!
SQLstr := ''select * from '' TblStr;
SQLstr := SQLstr '' where '' WhereStr '' like ''''%'' InputEdit.Text ''%'''''';
|
Justmade
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
tangkh
一般會員 ![]() ![]() 發表:26 回覆:28 積分:10 註冊:2002-09-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |