ADOTable控件查询一个表,如何实现“select * from ReceiveBody where ReceiveID = trim(edit1.text)”的功能

解决方案 »

  1.   

    用adoquery吧
    sql:='select * from ReceiveBody where ReceiveID = '+rim(edit1.text);
      

  2.   

    我这里牵扯lookup字段,所以必须用adotable
      

  3.   

    简单点的可以使用ADOTable1.Filter,但能力有限,支持sql,还是换吧,TADOQuery
      

  4.   

      //Data.tbl_Receive.Filter:='ReceiveID=:' + trim(edt1.Text);
      //Data.tbl_Receive.Filtered := True;这样试了好像没用
      

  5.   

      adotable1.Filtered := false;
      adotable1.Filter := 'ReceiveID ='''+trim(Edit1.text)+'''';
      adotable1.Filtered := true;
      

  6.   

    专门单另写了个小代码用
      Data.tbl_Receive.Filtered := True;
      Data.tbl_Receive.Filter := 'ReceiveID=:' + trim(edt1.Text);
    就可以实现但是在我程序中,用的
     Data.tbl_Receive.Filtered := True;
      Data.tbl_Receive.Filter := 'ReceiveID=:' + trim(edt1.Text);
      Data.tbl_Receive.Append;
    就只显示当前新增的ReceiveID=edit1.text的一条记录,之前的ReceiveID=edit1.text就不显示,该如何解决?
      

  7.   

    好奇怪
    Data.tbl_Receive.Filter := 'ReceiveID=:' + trim(edt1.Text);
    就不行
    Data.tbl_Receive.Filter := 'ReceiveID=''' + trim(edt1.Text)+'''';
    就好了
    问题解决了,但是还是不是很明白为什么会这样