我有一个表,里面有2个字段是codeno和codename,他们是唯一对应的,比如codeno是00001,它对应的codename是微软。他们之间是唯一的。
现在我在界面上有combobox1和combobox2,我想实现的是combobox1下拉的时候里面的值是codeno的值,而combobox2里面是codename的值,现在我下拉combox1的时候里面是00001,选定后,combobox2里面自动找到微软这个值,反过来也一样,如何实现。请给出具体的程序。

解决方案 »

  1.   

    s:='select codename from table1 where codeno='+combobox1.text;
    query.sql.add(s)
    combobox2.text:=query1.fieldbyname(codename);
    在combobox1的onchange里
      

  2.   

    combox1 onchange or onselectcombox2.itemindex := combox1.itemindex;
      

  3.   

    combox1 onchange or onselectcombox2.itemindex := combox1.itemindex;
      

  4.   

    formshow事件中填写如下代码:form1.ComboBox1.Items.Clear;
    form1.ComboBox2.Items.Clear;
    form1.tabel1.open;
    form1.table1.first;
    i:=form1.table1.recordcount;
    if i>0 then
    begin
    for j:=0 to i-1` do
    begin
    s1:=form1.table1.fieldvalue['codeno'];
    s2:=form1.table1.fieldvalue['codename'];
    form1.combobox1.items.add(s1);
    form1.combobox1.items.add(s2);
    form1.table1.next;
    end;
    end;在combobox1change中填写如下代码:
    if form1.combobox1.text<>'' then
    begin
    form1.query1.close;
    form1.query1.sql.clear;
    form1.query1.sql.add('select codename from tablename where codeno=:s1');
    form1.query1.parambyname('s1'):=form1.combobox1.text;
    form1.query1.open;
    form1.combobox2.text:=form1.query1.filedvalue['codename'];
    end
    else
    form1.combobox2.text:='';
      

  5.   

    s:='select codename from table1 where codeno='+combobox1.text;
    query.sql.add(s)
    combobox2.text:=query1.fieldbyname(codename);
    在combobox1的click里
    另一个同样这样写
      

  6.   

    初始化combobox中的数据
    procedure TForm2.FormCreate(Sender: TObject);
    begin
      ComboBox1.Clear;
      ComboBox2.Clear;
      with Table1 do //table连接操作表
      begin
        Close;
        Open;
        while not Eof do
        begin
          ComboBox1.Items.Add(FieldByName('codeno').AsString);
          ComboBox1.Items.Add(FieldByName('codename').AsString);
          Next;
        end;
      end;
    end;procedure TForm2.ComboBox1Change(Sender: TObject);
    begin
      ComboBox2.ItemIndex := ComboBox1.ItemIndex;
    end;
      

  7.   

    反过来用procedure TForm2.ComboBox1Change(Sender: TObject);
    begin
      ComboBox1.ItemIndex := ComboBox2.ItemIndex;
    end;只要使2者的ItemIndex相等就可以了
      

  8.   

    为什么不用TLookUpcombobox实现呢?如果用两个TLookUpcomboboxd的话,只要把两个组件的DataSource属性设置成同一个DataSet,然后TDataSet引用同一个表,把两个TLookUpcombobox的KeyFields,ListSource,ListField设置成相应的字段,不用什么程序就能完成楼主的功能啊~~如果说的不对,不要骂我啊,我是新手上路