用一个数据集把数据select 出来,再add到combobox,自已写一个通用过程就可以了。

解决方案 »

  1.   

    用SQL
    具体代码加些分给你吧
      

  2.   

    var
      I: Integer;
      FieldList: TStringList;
    begin
      FieldList := TStringList.Create;
      for I := 0 to ADOQuery1.Count - 1 do
      begin
        FieldList.Append(ADOQuery1.FieldByName('x').AsString);
      end;
      ComboBox1.Items.AddStrings(FieldList);
      FieldList.Free;
    end;
      

  3.   

    使用DBcombobox
    设置DBcombobox的ListSource和ListField属性
      

  4.   

    首先 select field1 from tabel_name(field1为你所要的字段,写在query控件的sql语句中)具体如下:
    var strtemp:string;
    begin
    ...
      query1.close;
      query1.sql.clear;
      query1.sql.add(select distinct field1 from tabel_name);
      query1.open;
      query1.first;
      listbox1.items.clear;
      while not query1.eof do
      begin
        strtemp:=query1.fieldbyname('field1').asstring;
        listbox1.items.add(strtemp);
        query1.next;
      end;
      

  5.   

    var
      I: Integer;
      My_Str:String;
    begin
      while not ADOQuery1.Eof do
      begin
        My_Str:=ADOQuery1.FieldByName('XXX').AsString;
        ComboBox1.Items.ADD();
        ADOQuery1.Next;
      end;
      ADOQuery1.Close;
    end;
      

  6.   

    ADOQuery1.Close;
    ADOQuery1.SQL.Text := 'SELECT FIELD1 FROM TABLE1';
    ADOQuery1.Open;
    ADOQuery1.First;
    ComboBox1.Items.Clear;
    while not ADOQuery1.Eof do
    begin
      ComboBox1.Items.Add(ADOQuery1.FieldByName('FIELD1').AsString;
      ADOQuery1.Next;
    end;//Field1你要的字段,Table1你的表名
      

  7.   

    但是这样的话,相同的字段也被加进去了耶!
    比如说:field[1]中有aaa,bbb,ccc,aaa
    如果用上面的方法,则combobox中就会出现aaa,bbb,ccc,aaa
    而真正想要的是 aaa,bbb,ccc
      

  8.   

    Query1.Close;
    Query1.SQL.Text := 'select AField from ATable';
    Query1.Open;
    Query1.First;
    ComboBox1.Items.Clear;
    while not Query1.Eof do
    begin
      ComboBox1.Items.Add(Query1.Fields[0].AsString);
      Query1.Next;
    end;
      

  9.   

    但是这样的话,相同的字段也被加进去了耶!
    ------那就在select中加上distinct