MS Access中的动态WHERE子句

时间:2013-10-30 06:14:08

标签: ms-access dynamic ms-access-2007 where-clause

我试图在查询中获得以下结果。

SELECT * FROM rosterTbl
WHERE (IIF( ISNULL([Forms]![ReportsGUI]![cmbCounsellor]), rosterTbl.CounsellorID<>null,rosterTbl.CounsellorID=[Forms]![ReportsGUI]![cmbCounsellor]

我知道上面的查询不正确,但我需要结果:如果cmbCounsellorNull那么所有辅导员都需要特定辅导员。

2 个答案:

答案 0 :(得分:2)

也许这样的事情会起作用:

="SELECT * FROM rosterTbl WHERE CounsellorID " & IIf(IsNull([Forms]![ReportsGUI]![cmbCounsellor], "IS NOT NULL", "= " & [Forms]![ReportsGUI]![cmbCounsellor])

编辑:评论

在这种特殊情况下,WHERE条件将用于控制要包含在报表中的记录,因此不需要竞争SELECT语句。相反,“WHERE”子句可以通过WhereCondition的{​​{1}}参数传递给报告,如下所示:

DoCmd.OpenReport

答案 1 :(得分:0)

这是在查询中执行此操作的方法:

SELECT * from rosterTbl 
WHERE [Forms]![ReportsGUI]![cmbCounsellor] IS  NULL
OR 
rosterTbl.CounsellorID 
= ([Forms]![ReportsGUI]![cmbCounsellor])