如何实现在DBGrid控键中的一个字段具有下拉列表框,下拉列表框使和我所建的另一个表相连(我用的使ADO组键)。要用语句写成动态的连接,这个问题我已经想了好几天了,谢谢各位大侠帮忙,如有有例子更好,分不够再加

解决方案 »

  1.   

    用PICKLIST:
    dbgrid1.Columns[2].PickList.append(ADOTABLE.FIELDBYNAME('BH').ASSTRIING)
      

  2.   

    直接用ADOquery与DBgrid关联,在query中新建一字段(假设名为X),设为lookup,并与你的表相联,OK了,在DBGrid中的X字段中就自动是下拉列表了!!这个方法很简单的
      

  3.   

    用PICKLIST:
    dbgrid1.Columns[2].PickList.append(ADOTABLE.FIELDBYNAME('BH').ASSTRIING)
      

  4.   

    用PICKLIST:
    dbgrid1.Columns[2].PickList.append(ADOTABLE.FIELDBYNAME('BH').ASSTRIING)
      

  5.   

    for i:=0 to adoquery1.recordcount-1 do
      begin
        dbgrid1.Columns[4].PickList.append(ADODatabase1.FieldByName('bm').AsString);
        adoquery1.next;
      end;
      

  6.   

    同意小风的,利用lookup,很方便的
      

  7.   

    同意小风的
    利用lookup ,可以实现的
      

  8.   

    用PICKLIST:
    dbgrid1.Columns[第几个字段].PickList.append(ADOTABLE.FIELDBYNAME('字段名').ASSTRIING)
    用PICKLIST:
    dbgrid1.Columns[第几个字段].PickList.append(ADOTABLE.FIELDBYNAME('字段名').ASSTRIING)
    用PICKLIST:
    dbgrid1.Columns[第几个字段].PickList.append(ADOTABLE.FIELDBYNAME('字段名').ASSTRIING)
    一定行的,你试试。OK
      

  9.   

    哈哈!第三方控件cxGrid 里面这个功能设置一下属性就ok了! 很好用的!
      

  10.   

    for i:=0 to adoquery1.recordcount-1 do
      begin
        dbgrid1.Columns[4].PickList.append(ADODatabase1.FieldByName('bm').AsString);
        adoquery1.next;
      end;
      

  11.   

    哪位大侠能告诉我如何设lookup字段吗?
      

  12.   

    //在DBGrid的colEnter事件写下如下代码,即可实现下拉列表
    with DBGri1.selectedfield do
    if (FieldName='field1') then //field1下拉显示FieldMc值
         with adoquery1 do
         begin
           close;
           sql.Clear ;
           sql.Add('select distinct fieldmc from  table1 ');//信息来源表
           open;
           if recordcount>0 then
           begin
            first;
            with DBgrid1  do
            for j:=1 to FieldCount do
             if columns[j].FieldName ='fieldmc' then
             begin
              columns[j].PickList.Clear;
              for i:=1 to recordcount do
               begin
               columns[j].PickList.Add(fieldbyname('fieldmc').value);
               next;
               end;
               break;
             end;
           end;
           close;
         end;
      
     
     
     
      添加Lookup字段也可以实现同样的效果,
    不过Lookup是针对query(Adoquery)实现的
    鼠标双击query(adoquery),鼠标单击右键,
    New Field设置Field type=Lookup
    然后设置相关属性即可!
      

  13.   

    设置DBGrid1.Columns[I].PickList属性,就可以把DBGrid1的第I列变成一个下拉框,如果要求第I列的不同行的下拉框内容不同,那就把跟DBGrid1关联的数据集设置一个单键索引,在OnCellClick事件中读取当前记录数据,来确定显示什么下拉框