我用delphi的数据桌面建立了一个数据表,表里有2个字段,ip和name,在dbcombobox中以下拉列表形式显示IP,怎样根据dbcombobox中选择的ip 在表中查询出对应的name值,把name赋值给strs.

解决方案 »

  1.   

    换用TDBLookupComboBox(用法在很多数据库的书上都有),它可以进行联动,然后在联动的数据集的OnAfterScroll事件当中直接取DataSet的name字段值赋给strs就可以了.
      

  2.   

    TDBLookupComboBox 是不是要建立一个从表。。
      

  3.   

    procedure TForm1.DBLookupComboBox1Click(Sender: TObject);
    var str:string;
    begin
        ADOQuery1.Close;
        ADOQuery1.SQL.Add('select name as name1 from test where IP='''+DBComboBox1.Text+'''') ;
        ADOQuery1.Open;
        str:=ADOQuery1.FieldByName('name1').AsString;
        ShowMessage(str);
    end;end.
    用DBLookupComboBox1,很好实现的。
    DBLookupComboBox1的listsource指定一下,然后再指定keyfield就OK了。
      

  4.   

    我这样写的,但是在dblookupcombobox中一选择呢称就出现错误‘record locked by another user’,这是哪个记录没有释放啊
    procedure TForm2.DBLookupComboBox1Click(Sender: TObject);
    var lbledtip:string;
    begin
        Query1.Close;
        query1.SQL.Clear;
        Query1.SQL.Add('select ip  from ip.db where 呢称='''+DBlookupComboBox1.Text+'''') ;
        Query1.Open;
        lbledtip:=Query1.FieldByName('ip').AsString;
    设定2个ADOTable,tb1 和tb2  
    设定2个DataSource,ds1,ds2, 
    DBLookupComboBox中,DataSource指向ds1,,DataField选择的是呢称   ListSource指向ds2,listField 也选择的是呢称,keyfield选择呢称