请问各位大虾,一个关于使用DBLOOKUPCOMBOBOX控件的查询问题,100分相送。

时间:2021-12-10 18:06:08
小弟做个查询系统,可按部门查也可输入为空值(即选全部部门),使用DBLOOKUPCOMBOBOX控件,连接一表TABLE1的字段“部门”(BM),程序的目的是可选下拉列表中的值进行查询,或者是选全部部门,我的全部部门是选为空时。可每次进入程序时,程序只能从列表中选择一个值,不能将其输入为空。
不知道各位大虾们遇到这个问题时是如何解决的?望高手相救!

小弟在此先谢过了。

13 个解决方案

#1


或者进入查询程序时,自动将dblookupcombobox1控件自动设定为空,不指到TABLE1表中的bm字段的某一值。不知大虾们可知道我的意思。就是想法将dblookupcombobox1控件可以设定为空这是方便客户查询的选择。或者用其它控件可以解决呢?
望大虾发言,小弟永不忘此恩!

#2


用combobox,在程序中附值和判断

#3


combobox不行吧,我要连接table1的。

#4


在Combobox的OnDropDown事件中加入你所要添加的部门不就行了!这样还可以手工加一个空值,效果和连接到数据库不是一样吗!而且还支持手工输入!

#5


//在dblookupcombobox1的右键点击(其他事件也可以,你看着办吧)事件中写:

dblookupcombobox1->DataSource->DataSet->Close();

#6


//对不起,没完
//在dblookupcombobox1的OnEnter事件中写:

dblookupcombobox1->DataSource->DataSet->Open();

#7


DBLOOKUPCOMBOBOX解决不了你的问题,自己写代码用comboBox解决吧。

#8


谢谢楼上各位大侠们的参与,我先用combobox试试。

#9


TO DelUser(探索者):
  在combobox的ondropdown事件中加个部门,怎么加呢?能否举个例子?

#10


分不够可再加!

#11


试试看:
应该在:table1(连接部门的表)的AfterOpen 中加上如下代码:
procedure TForm1.Table1AfterOpen(DataSet: TDataSet);
begin
  dataset.DisableControls;
  dataset.First;
  combobox1.Items.Clear;
  while not dataset.Eof do
  begin
     combobox1.Items.Add(dataset.fieldbyname('bm').AsString);
     dataset.Next;
  end;
  combobox1.Items.Add('所有部门');//
end;

#12


with query do
begin
  Close;
  SQL.Clear;
  SQL.Add('select distinct '部门' from Table');
  Open;
end;
if not query.IsEmpty then
begin
  query.First;
  combox1.Clear;
  while not query.Eof do
  begin
    Combox1.Items.Add(query.FieldByName('字段').AsString);  //加入所有部门
    query.Next;
  end;
  Combox1.Items.Add('');         //加入一个空的部门,这样可以选择一个空部门 
end;

#13


sliping(平原地带) ,DelUser(探索者) 的解法都正确。
但sliping(平原地带)的解法要好点。


好了问题解决结贴。

#1


或者进入查询程序时,自动将dblookupcombobox1控件自动设定为空,不指到TABLE1表中的bm字段的某一值。不知大虾们可知道我的意思。就是想法将dblookupcombobox1控件可以设定为空这是方便客户查询的选择。或者用其它控件可以解决呢?
望大虾发言,小弟永不忘此恩!

#2


用combobox,在程序中附值和判断

#3


combobox不行吧,我要连接table1的。

#4


在Combobox的OnDropDown事件中加入你所要添加的部门不就行了!这样还可以手工加一个空值,效果和连接到数据库不是一样吗!而且还支持手工输入!

#5


//在dblookupcombobox1的右键点击(其他事件也可以,你看着办吧)事件中写:

dblookupcombobox1->DataSource->DataSet->Close();

#6


//对不起,没完
//在dblookupcombobox1的OnEnter事件中写:

dblookupcombobox1->DataSource->DataSet->Open();

#7


DBLOOKUPCOMBOBOX解决不了你的问题,自己写代码用comboBox解决吧。

#8


谢谢楼上各位大侠们的参与,我先用combobox试试。

#9


TO DelUser(探索者):
  在combobox的ondropdown事件中加个部门,怎么加呢?能否举个例子?

#10


分不够可再加!

#11


试试看:
应该在:table1(连接部门的表)的AfterOpen 中加上如下代码:
procedure TForm1.Table1AfterOpen(DataSet: TDataSet);
begin
  dataset.DisableControls;
  dataset.First;
  combobox1.Items.Clear;
  while not dataset.Eof do
  begin
     combobox1.Items.Add(dataset.fieldbyname('bm').AsString);
     dataset.Next;
  end;
  combobox1.Items.Add('所有部门');//
end;

#12


with query do
begin
  Close;
  SQL.Clear;
  SQL.Add('select distinct '部门' from Table');
  Open;
end;
if not query.IsEmpty then
begin
  query.First;
  combox1.Clear;
  while not query.Eof do
  begin
    Combox1.Items.Add(query.FieldByName('字段').AsString);  //加入所有部门
    query.Next;
  end;
  Combox1.Items.Add('');         //加入一个空的部门,这样可以选择一个空部门 
end;

#13


sliping(平原地带) ,DelUser(探索者) 的解法都正确。
但sliping(平原地带)的解法要好点。


好了问题解决结贴。