我有一个 Access UDA,它使用了我很久以前整理的一些 VBA/SQL 代码,最近有人要求我调整特定查询以排除两个条件。我以为我可以简单地添加一个 SQL AND OR 语句,但我在尝试让这个简单的修复工作时遇到了很多麻烦。
我的原始代码:
SELECT * FROM [Master List]
WHERE ([Master List].IB)='" & strIBTO & "' AND ([Master List].[Type])<>'N'"
这将正确返回不包括 Type = "N" 的特定传递变量 "strIBTO" 的结果。
本质上,要求也是从查询中排除另一个类型,所以我修改了代码:
SELECT * FROM [Master List]
WHERE ([Master List].IB)='" & strIBTO & "' AND ([Master List].[Type])<>'N' OR ([Master List].[Type])<>'T'"
现在看来,Access 正在抛弃我的整个 AND 语句,因为我得到的结果中同时包含“N”和“T”。尝试了用括号括住整个 AND 语句和内部的各种排列,但无法获得正确的结果。
VBA SQL 在嵌套 AND/OR 方面与 MySQL 不同吗?我究竟做错了什么?