使用Access Query中的条件选择全部

时间:2012-11-29 09:44:55

标签: sql ms-access ms-access-2007 criteria

我有一个Access 2007查询。在条件中,如果表单中的过滤器设置为“查看所有组织”,我需要它来选择所有记录。但是,我无法让它发挥作用。标准如下:

=IIf([Forms]![Reports]![Referrals - Business Filter]="View all organisations","Like '*'")

该标准通常有效 - 如果我将“赞'*'”更改为特定的内容,例如“巴克莱”,然后它选择在该业务下列出的正确联系人,但这不是我想要实现的。

我做错了什么?

感谢。

1 个答案:

答案 0 :(得分:3)

你已经找到了一些有趣的东西!你想要查询 evaluate 的“Like *”不是文字字符串,而是逻辑表达式(评估为True或False)。

当您使用Iif在SQL中切换不同的比较表达式时(严格来说,Iif是Access VBA,而不是SQL,但Access允许您在查询中使用VBA),您只能在文字值之间切换。例如1,453.5,“此”,“客户名称”。

切换到“LIKE *”表达式相当于动态编写SQL。就像我说的那样“Iif(今天是星期五,(5-4),(6/2))杯咖啡”。你的大脑可以处理从文字英语到必须的东西的这种转换。评估(和数量,今天,英语文字“一”);访问 - 在一定程度上。但不是评估这个:

[AColumn] = "Like *"

并将其解释为

[AColumn] LIKE "*"

顺便说一下,检查是否选择“查看全部”进入单独的测试:

WHERE
([Selection on the form]="View all") OR
([AColumn]=[Selection on the form])