2013-05-02 133 views
2

我在ADOQuery2中有一个查询。现在,我想有一个过滤器,如此:ADOQuery.Filter不能与LIKE一起工作

ADOQuery2.Filter := 'where Fname like ' + QuotedStr(Txt_Search.Text + '*'); 
    ADOQuery2.Filtered := true; 

但引发此异常:(*像语句是访问,而不是%

enter image description here

什么想法?

回答

2

当使用LIKE操作从Access本身内的星号*是正确的通配符,但对于从其他应用程序ADO连接(像你这样),你实际上应使用“标准”百分比为SQL %通配符。

+0

AAAAH感谢。像往常一样,我应该早点问谷歌/堆栈溢出方式,但是不,至少需要一个小时“承认我需要帮助”...... – Zalumon 2013-07-15 14:52:13

0

试试这个,它工作正常

if Txt_Search.Text<> '' then 
begin 
    ADOQuery2.Filter := 'where Fname like '+QuotedStr(Txt_Search.Text+'*'); 
    ADOQuery2.Filtered := true; 
end; 

if Txt_Search.Text<> '' then 
begin 
    ADOQuery2.Filter := 'Fname like '+QuotedStr(Txt_Search.Text+'%'); 
    ADOQuery2.Filtered := true; 
end;