table1.filter问题(50分)

  • 主题发起人 主题发起人 121boy
  • 开始时间 开始时间
1

121boy

Unregistered / Unconfirmed
GUEST, unregistred user!
建了一个dbf数据表,使用其filter属性对custno字符字段实现过滤
语句如下:
filter:='custno='+edit1.Text;
调试时,发现只对数字有效,对字母无效
何故???????????????????????????????????????
 
当然,
如果是字符型,
得是这样:
filter:='custon='+''''+edit1.text+'''';
这样filter中才会是custon='abcd';
 

写成这样不好吗?

procedure TfrmIn.Table4FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept:=(Table1.FieldByName('custon').AsString=Edit1.text);
end;

 
可以这样写;
var
Str:String;
begin
Str:='custon = '''+edit1.text+'''';
Table1.Filter := Str;
Table1.Filtered := True;
end;
 
我同意amo的说法,我试过,table1中name字段记录全部为汉字。
s:=table1.fieldbyname('name').asstring;
table1.filter:='Name='+s;
table1.filtered:=true;
出错,提示:table1:field '' not found, 但我改为
table1.filter:='name='+''''+s+'''';
table1.filtered:=true;
通过了。
 
用format函数,方法如下:
filter:=format('custno='+'''%s''',[edit1.Text]);
即可
 
多人接受答案了。
 
后退
顶部