具有伪条件的MSAccess查询多值字段

时间:2017-10-19 14:01:44

标签: sql ms-access

我正在尝试在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子句的经验,知道我缺少什么?

0 个答案:

没有答案