使用If Statemnent访问表单DoCmd.ApplyFilter

时间:2017-05-18 13:18:59

标签: vba ms-access access-vba

是否可以在DoCmd.ApplyFilter中包含If语句?

我有一个连续的表单,其中包括类别列EmployeeTypeID(1(字段),2(Office))和DepartmentID(1(新销售),2(服务),3(其他))。我希望能够过滤DepartmentID,只显示包含Other for Office的记录,同时显示Field的所有部门。

DoCmd.ApplyFilter , "(dbo_Stat.DepartmentID)=3" 

这可以过滤所有内容

DoCmd.AppplyFilter, "IF(dbo_Stat.EmployeeTypeID)=2 Then (dbo_Stat.DepartmentID)=3

这就是我想要实现的目标,但语法似乎并不正确。我正在努力做甚么可能吗?

1 个答案:

答案 0 :(得分:1)

是:

DoCmd.AppplyFilter, "dbo_Stat.DepartmentID = IIf(dbo_Stat.EmployeeTypeID = 2, 3, SomeOtherValueThan3)"

对于“全部匹配”,您可以尝试旧技巧:

DoCmd.AppplyFilter, "dbo_Stat.DepartmentID = IIf(dbo_Stat.EmployeeTypeID = 2, 3, dbo_Stat.DepartmentID)"