如何将<all>选项添加到访问ComboBox </all>

时间:2013-01-22 15:42:47

标签: sql database vba

好的,所以花了几个小时就完成了这个,并且经过大量的在线教程后,我仍然无法得到这个......工作..

基本上,我让ComboBox显示<ALL>选项,但对于报告来说,它实际上并没有返回任何内容,而是仅仅是为了美观。如何让它返回数据?需要填写3个组合框,一个是治疗类型,另一个是治疗日期(两者都经常使用(ALL))和出生月,这将始终是特定月份。

处理类型ComboBox的查询如下:

Select "(All Records)" 
FROM Treatment
UNION Select Treatment.Treatment
From Treatment;

处理日期ComboBox的查询如下:

Select 0, "(All Records)"  
FROM Events 
UNION 
Select  Events.DatefieldID, Events.Datefields
From Events;

2 个答案:

答案 0 :(得分:1)

<All>不是Sql理解的特殊值...

如果您在其他查询中检查where treatmentType = [Value From Combo Box] ...并且组合框中的值为“<All>”..那么没有任何行符合该条件,并且不会有任何行返回。

相反,您需要调整逻辑以不同方式处理<All>值...

where treatmentType = [Value From Combo Box] OR [Value From Combo Box] = "<All>"

答案 1 :(得分:0)

作为Michaels解决方案的替代方案,您可以使用SQL通配符%(在Access中为*)来匹配所有记录。 组合框的行源查询:

Select "*" 
FROM Treatment
UNION Select Treatment.Treatment
From Treatment;

Like [Forms]![FormName]![ComboboxName]作为结果查询中字段Treatment的条件。 您会注意到空字段仍然不匹配。这可以通过过滤字段Nz([Treatment],0)进行归档(使访问返回0,匹配*,而不是NULL,而不是{。}}。

这使我的结果查询的SQL代码保持了很多关节的精简。