将Table2中源字段的值先读入内存,然后在输入框的OnChange事件中加入代码,用当前的值和内存中的字段值做模糊比较,符合的则加入列表,如果字段值较多须考虑到效率。

解决方案 »

  1.   

    用Rxlib275 的rxlookupEdit, 它是与数据库关联的,可下拉可清空;
    例子:procedure TFrmTableIntoLib.rxlookupEdit3Change(Sender: TObject);
    begin
      if   rxlookupEdit3.text <>'' then
      begin
        DataModuleNew.QueryProviderCode.Close;
        DataModuleNew.QueryProviderCode.SQL.clear;
        DataModuleNew.QueryProviderCode.SQL.Text :='Select * From 供应商编码表  WHERE 供应商名称 LIKE ''%'+trim(rxlookupEdit3.Text)+'%''  order by 供应商名称';
        DataModuleNew.QueryProviderCode.Open;
        RxLkEditClient.LookupSource.DataSet.Close;
        RxLkEditClient.LookupSource.DataSet.Open;
     end
      else
      begin
        DataModuleNew.QueryProviderCode.Close;
        DataModuleNew.QueryProviderCode.SQL.clear;
        DataModuleNew.QueryProviderCode.SQL.Text :='Select * From 供应商编码表 order by 供应商名称 ';
        DataModuleNew.QueryProviderCode.Open;
        RxLkEditClient.LookupSource.DataSet.Close;
        RxLkEditClient.LookupSource.DataSet.Open;
      endend;
      

  2.   

    先将DBLookUpComboBox排序,然后在DBLookUpComboBox的OnChange中,循环查询找,去掉不符合的就行了