想问下,我设定了3个COMBOBOX,COMBOBOX1和Combobox2里的ITEMS我是手动写进去的,在选择后,我想在Combobox3的ITEMS里面动态加入根据前2个COMBOBOX从数据库中查询到的数据。问下怎么实现
我连接数据库用的是ADOQUERY
下面是一段程序:
  suicombobox3.Enabled := true;
  Dateform.ADOQuery1.Close;
  Dateform.ADOQuery1.SQL.Clear;
  Dateform.ADOQuery1.SQL.Add('select * from main where phyle = '''+trim(suicombobox1.Text)+''' and shiptype = ''' + trim(suicombobox2.Text) +'''');
  Dateform.ADOQuery1.Open;
  n := Dateform.ADOQuery1.RecordCount;
  suicombobox3.Clear;
  for i := 1 to n do
    begin
      suicombobox3.AddItem(这里怎么写?);
    end;
或者告诉我combobox.additem怎么用的

解决方案 »

  1.   

    楼主查出来的数据不止一列吧,看要哪列就加哪列咯。
    如:suicombobox3.AddItem(ADOQuery1.FieldByName('列名').AsString);
      

  2.   

    一看就知道
    Dateform.ADOQuery1.Open;
    while  ( not ADOQuery1.eof)  do 
    begin
       comboBOx1.Items.Add(ADOQuery1.fieldbyname('XXXX').asstring); 
       ADOQuery1.next;
    end;未經測試
      

  3.   

    那还需要循环吗?编译的时候显示  Not enough actual paramenters
    ADDITEM需要2个参数  
    procedure AddItem(Item:string;AObject:TObject);
    后面哪个AObject怎么写?
      

  4.   

    suicombobox3.Enabled := true;
      Dateform.ADOQuery1.Close;
      Dateform.ADOQuery1.SQL.Clear;
      Dateform.ADOQuery1.SQL.Add('select * from main where phyle = '''+trim(suicombobox1.Text)+''' and shiptype = ''' + trim(suicombobox2.Text) +'''');
      Dateform.ADOQuery1.Open;
      n := Dateform.ADOQuery1.RecordCount;
      suicombobox3.Clear;
      with Dateform.ADOQuery1 do
      begin
        first;
        while not eof do
        begin
          suicombobox3.AddItem(fieldbyname('yourfieldname').asstring);
          next;
        end;
      end;
      

  5.   

    不好意思 
    suicombobox3.AddItem(fieldbyname('yourfieldname').asstring);
    改为
    suicombobox3.Items.Add(fieldbyname('yourfieldname').asstring);
      

  6.   

    name.Items.Add(dm.loginqry.fieldbyname('name').asstring)
      

  7.   

    问题解决,试了好久都没成功,突然发现,我用的不是COMBOBOX3,是COMBOBOX7   -_-