1.可以添加lookup字段来实现,keyfield选择client_code,dataset选择另一个数据 集,lookupfield选择你要显示的客户名称对应的那个字段,然后你用添加的这个查询字段代替原来的client_code就可以了!2.查询字段受它所对应数据集的限制,只能从你设置的数据集合对应的字段中选择

解决方案 »

  1.   

    1、用LOOPUP字段,空间用DBEDIT时,会出错,用DBLOOPUPCOMBOX时,又不能输入,只能选择,如果客户为几百、几千这是不行的。
    2、有其他好的方法吗?
      

  2.   

    1,如果客户名称已经固定的话,不用DBLOOPUPCOMBOX,直接写到combobox里不就行了
     ADOQuery1.Close;
         ADOQuery1.SQL.Clear;
         ADOQuery1.SQL.Add('select 客户名称 from tablename' );
        adoquery1.open;
        adoquery1.first;
        while not adoquery1.eof do
       begin
       combobox1.items.add(adoquery1.fields[0].value);
       adoquery1.next;
       end;
    这样就既能选,又能写了2,不知道你要具体实现什么功能,这种方法只能这样
      

  3.   

    1、其实我就想让用户增加记录时,在输入客户时,在显示客户名称的空间中输入客户的编码或着是拼音码按回车后,如果找到唯一个客户就默认是输入此客户,如果找到两条以上就弹出一个界面让用户选择;空间最好能用数据空间。
    2、用一个DBGRID显示销售子表,销售子表里有个goods_code与商品表中的goods_code 相关联,
    DBGRID的数据集中有商品编码、商品名称、商品规格等LOOPUP字段,在增加销售商品时,在显示商品编码的CELL中输入编码、拼音码按回车后,如果找到唯一的商品就默认是此商品,如果找到两条以上就弹出一个界面让用户选择。
      

  4.   

    想输入拼音首字母,就出来相应的数据,不简单啊,
    好像SQLSERVER的库函数有一个可以实现读音选择的,
    查一下联机手册看看。对于你上面的一个问题,同意楼上的几位兄弟的做法,
    自己用程序把相关的数据获取到ComboBox中去。
    提交时把值提交到数据库中,一般来说,不建议直接在DBGrid中添加修改数据。