一共有六个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;
  

解决方案 »

  1.   

    赋值之后加一句这个
    ComboBox.Refresh;
      

  2.   

     unit3.Data.adozw.close;
      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;
      

  3.   

    Combo_zxipdz.text := Combo_zxipdz.Items.Strings[Combo_zdmc.items.indexof(Combo_zdmc.text)]
    其它的改名称就OK了.