ADOQuery.Filter不使用LIKE

时间:2013-05-02 05:22:37

标签: delphi ms-access delphi-7 ms-access-2003

我在ADOQuery2中有一个查询。现在我想要一个过滤器:

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

但它抛出了这个异常:(*在like语句中用于Access而不是%

enter image description here

任何想法?

2 个答案:

答案 0 :(得分:2)

在Access本身中使用LIKE运算符时,星号*是正确的通配符,但对于来自其他应用程序(如您的)的ADO连接,您实际应该使用& #34;标准" SQL的百分比%通配符。

答案 1 :(得分: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;