程序如下:
procedure TForm1.Button4Click(Sender: TObject);
var ty1,keyword1:string;
begin
        ty1:=ty.Text ;  //字段
        keyword1:=keyword.Text ; //查询关键字
        if keyword1<>'' then
        begin
        ADOQuery1.Close ;
        ADOQuery1.SQL.Clear ;
        ADOQuery1.SQL.Text :='select * from PRG_Table';
        ADOQuery1.Filter:=ty1+' like "%'+keyword1+'%"';
        ADOQuery1.Filtered:=true;
        ADOQuery1.Open ;
        if ADOQuery1.recordcount=0 then showmessage('没有找到你想要的记录!');
        end
        else
                showmessage('查询关键字不能为空!');end;为什么我每次的查询结果都是空呢,我把相同SQL语句在SQL SERVER里执行可以找到记录的。

解决方案 »

  1.   

    ADOQuery1.Filter:=ty1+' like '+''''+'%'+keyword1+'%'+'''';跟踪调试一下看ty1+' like '+''''+'%'+keyword1+'%'+''''的值是否为:
    tyl like '%...%' 的形式
      

  2.   

    我把过滤器的值打出来看了一下,完全没问题如:field1 like "%ss%",没有问题吧,就是不知道为什么就是找不到记录?!
      

  3.   

    你在OnFilterRecord事件里面写吧,
    我不知道ADOQuery1.Filter也支持模糊查询,可能是我懂得太少!
    关注!!!