访问查询条件"如果选项3,则返回null"

时间:2014-06-23 16:05:18

标签: sql ms-access ms-access-2010

我有一个Access查询,它查看表单以查看选择了3个单选按钮(在名为frmStatus的组中)中的哪一个。如果选择第一个,则IIF返回“True”,如果选择第二个,则返回“False”,但如果选择第三个,我希望IIF绝对不返回,因此标准实际上是空的

现在,这是我的标准:

IIf([Forms]![SP_Search_Criteria]![frmStatus]=3,Like "*",IIf([Forms]![SP_Search_Criteria]![frmStatus]=1,True,False))

使用SQL(忽略Date()部分 - 按年龄搜索):

WHERE ((((Date()-[DoB])/365.25)>=[Forms]![SP_Search_Criteria]![txtMinAge] And ((Date()-[DoB])/365.25)<[Forms]![SP_Search_Criteria]![txtMaxAge]) AND ((StandardizedPatients.Active)=IIf([Forms]![SP_Search_Criteria]![frmStatus]=3,(StandardizedPatients.Active) Like "*",IIf([Forms]![SP_Search_Criteria]![frmStatus]=1,True,False))))

选项1和2工作得很好......我似乎无法让选项3工作。

所以,我的问题是这样的:如果没有标准,我可以在查询条件中将IIF放入有效搜索中吗?

1 个答案:

答案 0 :(得分:0)

我得到了它的工作 - 我所做的就是删除“Like”*“”部分,所以现在WHERE看起来像这样:

WHERE ((((Date()-[DoB])/365.25)>=[Forms]![SP_Search_Criteria]![txtMinAge] And ((Date()-[DoB])/365.25)<[Forms]![SP_Search_Criteria]![txtMaxAge]) AND ((StandardizedPatients.Active)=IIf([Forms]![SP_Search_Criteria]![frmStatus]=3,(StandardizedPatients.Active),IIf([Forms]![SP_Search_Criteria]![frmStatus]=1,True,False))))