Microsoft Access if语句有两个可能的过滤器

时间:2013-09-30 08:43:22

标签: ms-access if-statement filter

我想根据选择进行过滤,但我想要做的是,如果选择了Q1和Q2选项,我想为Q1和Q2过滤它们。这是我写的代码而不是工作:

Like IIf([Forms]![Form1]![Combo1]="All";"Q1" Or "Q2";[Forms]![Form1]![Combo1])

运行此代码后,程序更改" Q1"或者" Q2"部分到([QQuery]。[Q])=" Q1"或([Q_Query]。[问])=" Q2"。

我已经能够逐个过滤,我的意思是Q1,Q2或Q3。如何同时过滤Q1和Q2。感谢。

2 个答案:

答案 0 :(得分:1)

好的,我终于做到了!这就是我写的:

IIf([Forms]![Form1]![Combo1]="Q1+Q2";"Q1"; [Forms]![Form1]![Combo1]) Or IIf([Forms]![Form1]![Combo1]="Q1+Q2";"Q2";[Forms]![Form1]![Combo1]) 

等等。但如果要添加所有部分,则必须添加到上面的代码末尾:

Or Like IIf([Forms]![Form1]![Combo1]="All";"*";[Forms]![Form1]![Combo1]) 

希望这有助于其他有同样问题的人再次感谢Linger:)

答案 1 :(得分:0)

您没有指定通配符,因此您实际上并未使用LIKE,结果与使用相等运算符(=)的结果相同。

我相信下面的内容对您来说会更好。将Quarter替换为实际字段名称。我将它们放在括号中,以防你有任何其他标准要添加到WHERE子句中。

IIf([Forms]![Form1]![Combo1]="All"; "(Quarter = 'Q1' Or Quarter = 'Q2')";[Forms]![Form1]![Combo1])

如果您真的需要使用LIKE,那么它应该如下所示:

IIf([Forms]![Form1]![Combo1]="All";"(Quarter LIKE '*Q1*' Or Quarter LIKE '*Q2*')";[Forms]![Form1]![Combo1])