一共有六个combobox,我想实现的是:选好其中一个combobox的item之后,其他五个combobox.text就赋值为与其相关的数据,比如combo_zdmc(站点名称)选好之后, 其他五个Combo_ssxm, Combo_zxipdz,Combo_rtulx, Combo_lljlx,Combo_sftj都要自动显示出相关的信息,因为站点名称一确定,与该站点对应的ssxm,zxipdz,rtulx,lljlx,sftj都可以确定。以下是部分代码,运行时不报错,但是选好combo_zdmc(站点名称)之后,别的combobox都是空白,并不自动显示相关信息。请指点.(我在窗体的show事件里已经读取数据库里相关数据到各个combobox里了)procedure TChaxunForm.Combo_zdmcChange(Sender: TObject);
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Text:='select * from ssxm,zdxx where zdxx.zdmc ='#39+Combo_zdmc.Text+#39' and ssxm.ssxmid=zdxx.ssxmid ';
Open;
Combo_ssxm.Text:=FieldByName('ssxm').AsString;
end;
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Text:='select zxipdz from rtucs,zdxx where zdxx.zdmc='+#39+Combo_zdmc.Text+#39' and rtucs.txzh=zdxx.txzh';
Open;
Combo_zxipdz.Text:=FieldByName('zxipdz').AsString;
end;
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Text:='select rtulx from rtucs,zdxx where zdxx.zdmc='+#39+Combo_zdmc.Text+#39' and rtucs.txzh=zdxx.txzh';
Open;
Combo_rtulx.Text:=FieldByName('rtulx').AsString;
end;
{ with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Text:='select * from zdxx,rtucs,jlsscs,azwhjl,(select ssxm as xm,ssxmid as id from ssxm) as ss where zdxx.txzh = rtucs.txzh and rtucs.txzh = jlsscs.txzh and jlsscs.txzh=azwhjl.txzh and zdxx.ssxmid = ss.id and zdxx.zdmc='+#39+Combo_zdmc.Text+#39'';
Open;
Combo_ssxm.Text:=FieldByName('xm').AsString;
Combo_zxipdz.Text:=FieldByName('zxipdz').AsString;
Combo_rtulx.Text:=FieldByName('rtulx').AsString;
Combo_lljlx.Text:=FieldByName('lljlx').AsString;
Combo_sftj.Text:=FieldByName('sftj').AsString;
end; }
end;
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Text:='select * from ssxm,zdxx where zdxx.zdmc ='#39+Combo_zdmc.Text+#39' and ssxm.ssxmid=zdxx.ssxmid ';
Open;
Combo_ssxm.Text:=FieldByName('ssxm').AsString;
end;
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Text:='select zxipdz from rtucs,zdxx where zdxx.zdmc='+#39+Combo_zdmc.Text+#39' and rtucs.txzh=zdxx.txzh';
Open;
Combo_zxipdz.Text:=FieldByName('zxipdz').AsString;
end;
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Text:='select rtulx from rtucs,zdxx where zdxx.zdmc='+#39+Combo_zdmc.Text+#39' and rtucs.txzh=zdxx.txzh';
Open;
Combo_rtulx.Text:=FieldByName('rtulx').AsString;
end;
{ with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Text:='select * from zdxx,rtucs,jlsscs,azwhjl,(select ssxm as xm,ssxmid as id from ssxm) as ss where zdxx.txzh = rtucs.txzh and rtucs.txzh = jlsscs.txzh and jlsscs.txzh=azwhjl.txzh and zdxx.ssxmid = ss.id and zdxx.zdmc='+#39+Combo_zdmc.Text+#39'';
Open;
Combo_ssxm.Text:=FieldByName('xm').AsString;
Combo_zxipdz.Text:=FieldByName('zxipdz').AsString;
Combo_rtulx.Text:=FieldByName('rtulx').AsString;
Combo_lljlx.Text:=FieldByName('lljlx').AsString;
Combo_sftj.Text:=FieldByName('sftj').AsString;
end; }
end;
ComboBox.Refresh;
unit3.Data.adozw.sql.Clear;
unit3.Data.adozw.sql.Add('select * from z_ygxs');
unit3.Data.adozw.open;
combobox11.Clear;
unit3.Data.adozw.first;
repeat
combobox11.Items.Add(unit3.Data.adozw.fields[0].asstring);
unit3.Data.adozw.Next;
until unit3.Data.adozw.eof;
ComboBox11.ItemIndex :=0;
其它的改名称就OK了.