我正在尝试在Microsoft Access中创建一个报表,允许用户从表单中选择各种条件(包括不为特定条件选择任何选项的选项,从而对该字段没有限制),然后用作报告记录源中的标准。除了我的两个标准之外,我已经成功地完成了这项工作,这些标准是查询多值字段(用户从组合框中选择一个选项,但是被查询的表允许在字段中有多个值)。 我的组合框(“OSHA致癌物”)的控制来源如下:
SELECT
TblCarcinogens.ID,
TblCarcinogens.[Carcinogen Name]
FROM TblCarcinogens
UNION
SELECT
Null AS AllChoice,
"(All)" AS Bogus
FROM TblCarcinogens
ORDER BY TblCarcinogens.[ID];
我的where子句中的相关代码如下:
((IIf([Forms]![FrmRPIFilters]![OSHA Carcinogens] Is Not Null,
[RPIMaster].OSHA Carcinogens].[Value]=
[Forms]![FrmRPIFilters]![OSHA Carcinogens],
[RPIMaster].[OSHA Carcinogens].[Value]=
[RPIMaster].[OSHA Carcinogens].[Value]))
<>False));
这种方法似乎适用于多值字段以外的任何其他方法,但似乎也很复杂。如果有更好的方法可以做到这一点,我愿意接受有关精简where子句的建议。
当使用在FrmRPIFilters上的OSHA致癌物字段中选择的选项运行查询时,结果集仅包括在该字段中没有存储值的记录。
有没有人有过这种where子句的经验,知道我缺少什么?