我用TDBComboBox控件,将其Datasource属性和Dateifield属性设置好,但在运行时下拉选项中怎么没有选项,只显示对应table中的第一条记录,而没有以后的纪录。请各位高手给指点指点。

解决方案 »

  1.   

    你可以在窗口的oncreate事件中添加DBComboBox1的Item。Query1:'select distinc field1 from t1'DBComboBox1.Items.Clear;//记得先清楚
    循环添加DBComboBox1.Items.Add('query1的field1');
      

  2.   

    With query1 do
    begin
    close;
    sql.clear;
    sql.add('select distinc field1 from t1');
    open;
    combobox1.items.clear;
    while not eof do
    begin
    combobox1.items.add(adoquery1.fieldbyname('field1').asstring);
    adoquery1.next;
    end;
    combobox1.itemindex:=0;
    end;
      

  3.   

    我把上面的代码写在oncreat事件中,但是编译时
       combobox1.items.clear;
        combobox1.items.add(adoquery1.fieldbyname('field1').asstring);
        combobox1.itemindex:=0;
    这三行有错,提示combobox1 有问题,提示内容为:
      "Record, object,or class type required"
    请问怎么解决。
      

  4.   

    设置 ListSource属性为某个DataSource控件,KeyField属性为你要显示的字段
    我在两层中试过了
      

  5.   

    我用的del6,TDBcombobox控件没有ListSource,KeyField属性,另外我的del6一直没有注册,
    是ENterprise版的,请问这又没有影响。
      

  6.   

    没有注册应该不影响这个,没有ListSource,KeyField属性很正常,因为只有DBLookupComboBox才有。也许你要用的就是DBLookupComboBox,他必须有另外一个表的数据源来做ListSource,KeyField。按你提出的问题看,你是想得到表中已经保存的该字段的所有内容,以便操作员输入,用我上面说的方法就可以实现,“《angle097113(深思不解) ”写的代码就是跟我的方法一样的,他写的详细一些,你全部搬过去当然不能实现,你要看懂他的程序,然后根据你的实际情况改变一下他的程序,就能运行了。如果你用的是LookupFields,那么你要用的控件应该是DBLookupComboBox。
      

  7.   

    要让“angle097113(深思不解) ”的程序能运行,你必须添加一个Query1,他的combobox1应该是你的DBComboBox1。T1应该是你的数据库中的表名,Field1是你表中的字段名。