0

好的,所以在花了几个小时之后,并遵循了大量的在线教程,我仍然无法得到这个 ..working ..

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

Treatment Type ComboBox 的查询如下:

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

Treatment Date ComboBox 的查询如下:

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

2 回答 2

1

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

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

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

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

于 2013-01-22T17:07:58.187 回答
0

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

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

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

这使我的结果查询的 SQL 代码(包括很多关节)更加精简。

于 2016-03-28T21:04:53.110 回答