procedure TForm8.Button4Click(Sender: TObject);
begin
  with ADOQuery2 do
  begin
    close;
    SQL.Clear;
    SQL.Add('Select * from insp where a,b,c,d like'+''''+'%'+Trim(edit1.Text)+'%'+'''');
    open;
  end;
end;注:我用的是ADO连接的access数据库。
access 模糊查询like 为何查询不出来,请问错在哪里?请高手解答!

解决方案 »

  1.   

    Add('Select * from insp where d like '+Quotedstr('%'+Trim(edit1.Text)+'%'));
      

  2.   

    Select * from insp where a like or b like or c like or d like
    哪来的a,b,c,d like你太搞了
      

  3.   

    放ACCESS里试试
      

  4.   

    access里用like不能用&,把&改成*就行了.Add('Select * from insp where d like '+Quotedstr('*'+Trim(edit1.Text)+'*'));
      

  5.   

    Select * from insp where a like '%学习%'
    在ACCESS中模拟查询没有问题。但放到delphi就有问题了:delphi显示下面红色显示4个错误。
    procedure TForm8.Button4Click(Sender: TObject);
    begin
      with ADOQuery2 do
      begin
        close;
        SQL.Clear;
        SQL.Add('Select * from insp where a like '%学习%');
        Prepared;
        open;
      end;
    end;
      

  6.   

    SQL.Add('Select * from insp where a like ''%学习%''');
      

  7.   

    不过要用*代替%
    SQL.Add('Select * from insp where a like ''*学习*''');ACCESS的文档中有这么一句话:
    请注意,ANSI SQL 通配符 (%) 和 (_) 仅在 Microsoft® Jet 4.X 版本和 Microsoft OLE DB Provider for Jet 中才是有效的。如果用在 Microsoft Access 或 DAO 中,那么它们被视为文本。
      

  8.   

    楼上,下面两种虽然不显示错误,但点击按钮后,根本不动,还是所有的记录在那,为什么呢?
    procedure TForm8.Button4Click(Sender: TObject);
    begin
      with ADOQuery2 do
      begin
        close;
        SQL.Clear;
        SQL.Add('Select * from insp where a like ''%学习%''');
        Prepared;
        open;
      end;
    end;procedure TForm8.Button4Click(Sender: TObject);
    begin
      with ADOQuery2 do
      begin
        close;
        SQL.Clear;
        SQL.Add('Select * from insp where a like ''*学习*''');
        Prepared;
        open;
      end;
    end;
      

  9.   

    Prepared;这个可以不要;打开你的access和表,一条条对照看,到底没有符合的记录
    另外,记录在那里显示,DBGrid? 和ADOQuery2关联了吗?LZ在考我们智商呢,鉴定完毕...
      

  10.   

    access里能查询,但在delphi的dbgrid里就不行了。adquery2里的SQL 的TStrings里我填入了:select * from insp
    双击adquery2,字段全部选了
    parameters的Tparameters我没有动
      

  11.   


    Select * from insp where a like '%学习%'
    这个在access里是可以查询的。
      

  12.   

    http://download.csdn.net/detail/veron_04/1644211
      

  13.   

    var a1,a:string;
    a1:='%'+edit1.text+'%';
    a:='select * from 数据表 where 查询字段 like '''+a1+'''';
    adoquery2.close;
    adoquery2.sql.clear;
    adoquery2.sql.add(a);
    adoquery2.open;
      

  14.   

    access 与sql server中的通配符不一样,你用*替换%就OK了