for i:=1 to ADOQuery1.RecordCount do
    combobox1.Items.Add(ADOQuery1.Fields[0].AsString);
 
我想把查到的那个字段对应的几条记录都加到combobx1的下拉列表中来,不成功,把第一个记录重复了adoquery1.recordcount次,所以我写的肯定是错的,请哥哥们指教哈!

解决方案 »

  1.   

    for i:=1 to ADOQuery1.RecordCount do
      BEGIN  
        combobox1.Items.Add(ADOQuery1.Fields[0].AsString);
        ADOQuery1.NEXT;
      END;
      

  2.   

    adoquery1.first;
    for i:=1 to ADOQuery1.RecordCount do
      BEGIN  
        combobox1.Items.Add(ADOQuery1.Fields[0].AsString);
        adoquery1.next;  
    END;或者
    adoquery1.first;
     while not ADOQuery1.eof do
      BEGIN  
        combobox1.Items.Add(ADOQuery1.Fields[0].AsString);
        ADOQuery1.NEXT;
      END;
      

  3.   

    ADOQuery1.first;
    for i:=1 to ADOQuery1.RecordCount do
    begin
        combobox1.Items.Add(ADOQuery1.Fields[0].AsString);
        ADOQuery1.next;
    end;
      

  4.   

    adoquery1.first;
     while not ADOQuery1.eof do
      BEGIN  
        combobox1.Items.Add(ADOQuery1.Fields[0].AsString);
        ADOQuery1.NEXT;
      END;最好用这种方法。
      

  5.   

    同意foxyy8888(面向Money编程),我们公司也都用这种方法判断的!
      

  6.   

    procedure TFrm_InMZSF.CBB_YFNameDropDown(Sender: TObject);
    var
      s: string;
    begin
      CBB_YFName.Items.Clear;
      with DM.ADOQuery_YK do
      begin
        close;
        open;
        First;
        while Not Eof do
        begin
          s := FieldByName('Cangk_Mc').AsString;
          CBB_YFname.Items.Add(s);
          next;
        end;
      end;
    end;
      

  7.   

    for i:=1 to ADOQuery1.RecordCount do
        combobox1.Items.Add(ADOQuery1.Fields[0].AsString);这种写法ADOQuery1的记录指针是不会移动的,所以会出现ADOQuery1.RecordCount个重复记录.
    用foxyy8888(面向Money编程)的方法就可以了!
      

  8.   

    with adoquery1 do begin
      first;
      while not(eof) do
      begin  
        combobox1.Items.Add(Fields[0].AsString);
        next;
      end;
    end;
    建议不要用recordcount,用EOF的方法好。
      

  9.   

    用while 是最好的  
    另外,想这样的Combobox 最好是用数据敏感的最方便