小弟用Query做的模糊查询,总是提示From子句语言错误,屏蔽ADOQuery1.Open;就没这个错误了,不过没显示
用filter貌似不能做模糊查询
代码如下,各位大哥帮看看:
procedure TForm1.Button1Click(Sender: TObject);
    var
  tj,tj1,tj2,tj3,tj4:string;
begin
tj1:='1=1';
if checkbox1.Checked then //  按表号查询
tj1:='M_NO like'''+'%'+edit2.Text+'%'+'''';tj2:= '1=1';
if checkbox3.Checked then //按测试员查询
tj2:='Name like'''+'%'+edit3.text+'%'+'''';tj:='select * from test1.db where'+tj1+'and'+tj2;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.add(tj);
ADOQuery1.Open;end;

解决方案 »

  1.   

    'and' -> ' and '
      

  2.   


    procedure TForm1.Button1Click(Sender: TObject);
    var
      str:string;
    begin
      str:= 'select * from test1.db where 1=1 ';
      if checkbox1.Checked then 
        str:= str+' and M_NO like''%'+edit2.Text+'%'' ';
      if checkbox3.Checked then 
        str:= str+' and Name like''%'+edit3.text+'%'' ';ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.text:= str;
    ADOQuery1.Open;end;
      

  3.   

    dinoalex正解,其实是你的语法错了,把SQL语句拷出来,放到查询分析器检查一下。
      

  4.   

    dinoalex兄正解,调试通过,结贴