在Access中结合where和IIF语句

时间:2015-02-23 16:19:11

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

我有一个表单,其中包含三个与三个是/否变量相关的按钮,这些变量在子表单中不相互排斥。默认情况下Access使用“和”设置关系,所以如果我选择三个按钮中的两个,它会向我显示所有对两者都有“是”的观察,但我希望按钮具有“或”关系,这样如果我选择两个按钮我想要所有观察结果,它对两个已检查变量中的任何一个都是肯定的。

我正在尝试编写一个可以执行此操作的查询,但Access不支持SQL案例函数,我无法使其与IIF语句一起使用。

我想按照以下方式编写代码:

select var1,var2,var3 
from table 
where iif(form!form1!var1=yes and form!form1!var2=no and form!form1!var3=yes,table.var1=yes or table.var3=yes and table.var2=no,...)

看来你只能在某些地方使用iif。任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:0)

如果采取以下步骤,下面显示的SQL将返回正确的行:

SELECT Table1.Var1, Table1.Var2, Table1.Var3, Table1.ID
FROM Table1
WHERE ((([Forms]![frmChildTable]![bVar1] And [var1])=True)) 
    OR ((([Forms]![frmChildTable]![bVar2] And [var2])=True)) 
    OR ((([Forms]![frmChildTable]![bVar3] And [var3])=True));
  • 在名为bVar1,bVar2,bVar3
  • 的表单上创建3个文本框
  • 将格式设置为是/否
  • 让您现有的三个按钮切换控件

我假设您使用“按钮”一词意味着“命令按钮”。如果你想使用'Option Buttons',那么就没有必要的代码来切换。