dm.ADOTbBug 使用Filter 屬性的話,不能包括 查找字段。
?
方法1
在過濾事件里 使用查找字段。
http://www.itdelphi.com/delphibbs/doc/2001/558361.htm
方法2
就是使用查找字段對應的KeyFields 為字段名。
比如查找字段是 部門名稱,對應的數據集里KeyFields是部門編號
對待過濾的數據集不能使用 (LookupField)部門名稱= Edit1.Text
只能使用 (查找字段的KeyFields)部門編號= Edit1.Text?
http://gb.qin.blog.163.com/blog/static/109655227200982841553937/
procedure ? TForm1.BitBtn1Click(Sender: ? TObject); ??
? var ??
? ? Ptmp:string; ??
? ? Ltmp:string; ??
? begin ??
? ? Ptmp:=adotable1.FieldByName('aaa').KeyFields; ??
? ? LTmp:=adotable1.FieldByName('aaa').LookupDataSet.FieldByName('Pkey').AsString; ??
? ? adotable1.Filter:=ptmp+'='''+Ltmp+''''; ??
? ? adotable1.Filtered:=true; ??
? end;
注:
其主要思路好下: ??
? 一、取得lookup字段的主鍵名(KeyField) ??
? 二、從lookup字段對應的數據集找到lookup對應的關鍵值(LookupKeyField) ??
? 三、進行過濾?
其實 就是取 KeyField的名字 =?LookupKeyField的 值
?