procedure TForm1.Button1Click(Sender: TObject);
begin
    adoquery1.Active:=false;
    adoquery1.SQL.Add('select * from db1 where 姓名=''edit1.text''');
    adoquery1.active:=true;
end;
当我按下查询按钮时报错[microsoft][odbc microsoft access driver]from子句
语法错误。请问from子句到底要怎样写了,我不太熟悉sql,请各位指教。

解决方案 »

  1.   

    adoquery1.SQL.Add('select * from db1 where 姓名='+'''+edit1.text+''');
      

  2.   

    同意楼上!建议使用 MessageBox 将 AdoQuery1.SqL.Text 的值显示出来,看一下就会知道了。
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
        adoquery1.close;
        adoquery1.SQL.Add('select * from db1 where 姓名='+'''edit1.text+''');
        adoquery1.open;
    end;
      

  4.   

    To WWWWA:还是不行啊,那么多加号,单引号是在做什么啊?
      

  5.   

    用这个,把原来的全替换了
        adoquery1.close;
        adoquery1.sql.clear;   
        adoquery1.SQL.Add('select * from db1 where 姓名='''+edit1.text+'''');
        adoquery1.open;标准SQL里字符型需要''表示,所以要多几个'
      

  6.   

    试试这个:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
        adoquery1.close;
        adoquery1.SQL.Clear;
        adoquery1.SQL.Add('select * from db1 where 姓名=''' + edit1.text+ '''');
        adoquery1.open;
    end;
      

  7.   

    呵呵,楼上,same time:)
      

  8.   

    有可能你配置的adoquery1 的ODBC数据库有问题,找不到表dbl
      

  9.   

    adoquery1.SQL.Add('select * from db1 where 姓名='+'"'+edit1.text+'"');
    因为姓名为字符型,必须用'.
      

  10.   

    bluemeteor(挂月||╭∩╮(︶_︶)╭∩╮) 好快的速度呀!看来偶的打字速度要提高了。
      

  11.   

    query等于true前
    用showmessage(query.sql.text)看一下就知道了