procedure TForm1.FormShow(Sender: TObject);
begin
  DBComboBox1.DataSource := DataSource1;
  DataSource1.DataSet := ADOQuery1;
  ...
  ADOQuery1.SQL.Add('select * from tablename');
  ADOQuery1.Open;
  DBComboBox1.DataField := 'name';
  DBComboBox1.Refresh;
end;

解决方案 »

  1.   

    procedure TLogin.FormCreate(Sender: TObject);
    begin
      with dm.ADOQuery1 do
      begin
        dm.adoquery1.Close ;
        dm.adoquery1.Open ;
        while not dm.adoquery1.Eof do
        begin
          ComboBox1.Items.Add(dm.adoquery1.FieldByName('用户名').AsString);
          dm.adoquery1.Next;
        end;
      end;
    end;
      

  2.   

    如qdmis33(yhy) 则有重复记录的话,都会显示出来!那样很不好操作!本人建议改动此句会好点:ADOQuery1.SQL.Add('select 其他字段,distinct name from tablename');
      

  3.   

    这样只连接了一条记录,得写代码将其它的记录加到items里,qdmis33(yhy)的方法
      

  4.   

    还是自己在items里加好点用其它有重复的处理起来就麻烦点
      

  5.   

    你这样只连接了一条记录,得写代码将其它的记录加到items里,qdmis33(yhy)的方法