记得多条件时要添加括号
If (Trim(Flatedit14.text)<>'')and (Trim(Flatedit15.text)<>'')and (Trim(Flatedit16.text)<>'')

解决方案 »

  1.   

    这个问题属于你引号没有打好,应该是:
    strsql:='select * from zujdj where htnumber='+'''+trim(Flatedit14.text)+' and '+'''+trim(flatedit15.text)+'''+'and'+'''+trim(flatedit16.text)+''';
    这样应该就行了,多试验一下下了
      

  2.   

    两个问题:
    If (Trim(Flatedit14.text)<>'') and (Trim(Flatedit15.text)<>'') and (Trim(Flatedit16.text)<>'') then
      begin
        strsql:='select * from zujdj where htnumber='''+trim(Flatedit14.text)+''' '+' and .......';
         if Query7.Active then
            Query7.Active:=false;
            Query7.sql.SetText(pchar(strsql));
            query7.active:=true;
      end;
      

  3.   

    if ((表达式)AND(表达式))AND (表达式) THEN 
    BEGIN 
    END;SQLSTR:='SELECT * FORM TABLE WHERE AAA='+#39+STRING1+#39+' AND ' 
    +' BBB=' +#39+' STRING2+#39;
      

  4.   

    这样写不容易出错:If (Trim(Flatedit14.text)<>'') and (Trim(Flatedit15.text)<>'') and (Trim(Flatedit16.text)<>'') then
      begin
        strsql:='select * from zujdj where htnumber= :htnumber
             and ppp = :ppp and ....';
         if Query7.Active then
            Query7.Active:=false;
            Query7.sql.SetText(pchar(strsql));
            Query7.Params[0].AsInteger := 1025;
            Query7.Params[1].AsString := 'asfsafd';
    ..................
            
            query7.active:=true;
      end;