我有一个表,里面有2个字段是codeno和codename,他们是唯一对应的,比如codeno是00001,它对应的codename是微软。他们之间是唯一的。
现在我在界面上有combobox1和combobox2,我想实现的是combobox1下拉的时候里面的值是codeno的值,而combobox2里面是codename的值,现在我下拉combox1的时候里面是00001,选定后,combobox2里面自动找到微软这个值,反过来也一样,如何实现。请给出具体的程序。
现在我在界面上有combobox1和combobox2,我想实现的是combobox1下拉的时候里面的值是codeno的值,而combobox2里面是codename的值,现在我下拉combox1的时候里面是00001,选定后,combobox2里面自动找到微软这个值,反过来也一样,如何实现。请给出具体的程序。
query.sql.add(s)
combobox2.text:=query1.fieldbyname(codename);
在combobox1的onchange里
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:='';
query.sql.add(s)
combobox2.text:=query1.fieldbyname(codename);
在combobox1的click里
另一个同样这样写
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;
begin
ComboBox1.ItemIndex := ComboBox2.ItemIndex;
end;只要使2者的ItemIndex相等就可以了