我试图在查询中得到以下结果。
SELECT * FROM rosterTbl
WHERE (IIF( ISNULL([Forms]![ReportsGUI]![cmbCounsellor]), rosterTbl.CounsellorID<>null,rosterTbl.CounsellorID=[Forms]![ReportsGUI]![cmbCounsellor]
我知道上面的查询不正确,但我需要结果:如果cmbCounsellor是Null那么所有辅导员 其他特定辅导员。
我试图在查询中得到以下结果。
SELECT * FROM rosterTbl
WHERE (IIF( ISNULL([Forms]![ReportsGUI]![cmbCounsellor]), rosterTbl.CounsellorID<>null,rosterTbl.CounsellorID=[Forms]![ReportsGUI]![cmbCounsellor]
我知道上面的查询不正确,但我需要结果:如果cmbCounsellor是Null那么所有辅导员 其他特定辅导员。
也许这样的事情会起作用:
="SELECT * FROM rosterTbl WHERE CounsellorID " & IIf(IsNull([Forms]![ReportsGUI]![cmbCounsellor], "IS NOT NULL", "= " & [Forms]![ReportsGUI]![cmbCounsellor])
在这种特殊情况下,WHERE 条件将用于控制要包含在报告中的记录,因此并不需要完全的 SELECT 语句。相反,“WHERE”子句可以通过 的WhereCondition参数传递给报告DoCmd.OpenReport,如下所示:
DoCmd.OpenReport "MyReport", acViewPreview, , "CounsellorID " & IIf(IsNull([Forms]![ReportsGUI]![cmbCounsellor], "IS NOT NULL", "= " & [Forms]![ReportsGUI]![cmbCounsellor])
这是在查询中执行此操作的方法:
SELECT * from rosterTbl
WHERE [Forms]![ReportsGUI]![cmbCounsellor] IS NULL
OR
rosterTbl.CounsellorID
= ([Forms]![ReportsGUI]![cmbCounsellor])