请高手指教 ( 积分: 35 )

  • 主题发起人 主题发起人 hoyaxun
  • 开始时间 开始时间
H

hoyaxun

Unregistered / Unconfirmed
GUEST, unregistred user!
我用两个combobox,(adoqurery1,dbgrid1,datesourse1),第一个combobox的item是dbgrid的字段,(动态生成),我想当combobox1的text改变时(也就是字段改变时),combobox2的item的内容就是combobox1的text(字段)所对应记录的值也随之改变,请高手指教
 
我用两个combobox,(adoqurery1,dbgrid1,datesourse1),第一个combobox的item是dbgrid的字段,(动态生成),我想当combobox1的text改变时(也就是字段改变时),combobox2的item的内容就是combobox1的text(字段)所对应记录的值也随之改变,请高手指教
 
在combobox1的onchange事件里写改变combobox2的item内容的代码喽~
你是想查询吧,比如城市,地区这类的

城市对应的是combobox1,地区对应combobox2
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
//adoquery1....根据combobox1.text查询数据
combobox2.Items.BeginUpdate;
combobox2.items.clear;
while not adoquery1.eof do
begin
combobox2.item.add(...);//添加combobox2的item
end;
combobox2.Items.EndUpdate;
end;
 
to hs-kill
大哥,你这个方法我试过了,不行
你看我是这样做的,问题存在于,combobox3可以随combobox1而改变,可是两者的值完全一样,比如:combobox1.text为'cardno',那么combobox3的值也是"cardno',而不是cardno这个字段所对应的数据.
请高手指点
procedure TForm1.FormShow(Sender: TObject);
var i:integer;
begin
combobox1.Items.Clear;
for i :=0 to (adoquery1.FieldCount-1) do
begin
combobox1.Items.Add(adoquery1.Fields.FieldName);
end;


end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
combobox3.Items.Clear;
with ADOQuery2 do
begin
close;
sql.Clear;
sql.Add('select :name from employee ');
adoquery2.Parameters.ParamByName('name').Value:=trim(combobox1.Text);
open;
end;
adoquery2.First;
combobox3.Items.BeginUpdate;
while not adoquery2.Eof do
begin
combobox3.Items.Add(adoquery2.Fields[0].value);
adoquery2.Next;
end;
combobox3.Items.EndUpdate;
end;
 
晕。。。。我看糊涂了。。。。

你是想combobox3的item里的项还有值都和combobox1的一样吗?

sql.Clear;
sql.Add('select :name from employee ');
adoquery2.Parameters.ParamByName('name').Value:=trim(combobox1.Text);
open;
这是做什么?

combobox3.text=combobox1.text不就行了?
 
后退
顶部