如何让查询的数据库结果显示到一个下拉菜单中?

解决方案 »

  1.   

    动态添加结果到mainmenu下拉菜单,简单点的,没有带事件啥的:procedure TForm1.Button2Click(Sender: TObject);
    var myitem:Tmenuitem;
        i:integer;
    begin
       with adoquery1 do
       begin
          close;
          sql.clear;
          sql.add('select * from test order by id');
          open;
       end;
     if adoquery1.recordcount>0 then
     begin
     for i:=0 to adoquery1.recordcount-1 do
      begin
        myitem:=TMenuitem.Create(nil);
        myitem.Caption:=adoquery1.FieldByName('字段').AsString;
        mainMenu1.Items.Items[0].Add(myitem); //此处0表示菜单索引,若在第二个菜单项下添加数据,则为1
        adoquery1.Next;
      end;
     end
     else
        application.messagebox('查询数据无记录','提示',mb_ok);
    end;
    动态添加到combobox下拉列表中procedure TForm1.Button1click(sender:tobject);
    begin
       combobox1.clear;
       with adoquery1 do
       begin
          close;
          sql.clear;
          sql.add('select distinct 字段 from test order by id');
          open;
       end;
       while not adoquery1.eof do
       begin
          combobox1.items.add(adoquery1.FieldByName('字段').value);
           adoquery1.next;
       end;
      

  2.   

    如果想在dbgrid中下拉菜单,可以嵌入组合框combobox,然后把数据通过一个adoquery控件插入到组合框中