ms-access - MS Access DLookup 多重查找运行时错误 13 类型不匹配
问题描述
我有一个我认为很简单的问题,但我一定错过了一些东西。
这行 VBA 有效:
If Me.To = 340 And DLookup("[LocID]", "[qryMyLocation]") = "C25" Then
但是,我需要针对 2 个 LocID 进行测试,但这不起作用:
If Me.To = 340 And DLookup("[LocID]", "[qryMyLocation]") = "C25" Or "C20" Then
我错过了什么 - 以上可能吗?
尝试第二行代码时收到错误:运行时错误 13 类型不匹配
解决方案
这是因为您需要再次编写比较,VBA 无法将“C20”理解为有效的布尔表达式。
If Me.To = 340 And ((DLookup("[LocID]", "[qryMyLocation]") = "C25" Or DLookup("[LocID]", "[qryMyLocation]") = "C20")) Then
为了获得更快的结果,您可以将 DLookup 存储到一个变量中。
Dim LocID as Variant 'Put the right type here, I think it should be String
LocID = DLookup("[LocID]", "[qryMyLocation]")
If Me.To = 340 And (LocID = "C25" Or LocID = "C20") Then
编辑:由于运算符优先级,我添加了与接受的答案相同的括号。省略括号会导致
If (Me.To = 340 And LocID = "C25") Or LocID = "C20" Then
推荐阅读
- perl - perl grep 匹配来自哈希表的键
- makefile - 重新制作模式规则的目标,即使它比先决条件更新
- sails.js - 如何从 Sails 控制台呼叫助手?
- html - 如何在条件语句中使用 ngClass
- vim - 如何使用 Vim 中的 ./ 相对路径将本地存储的备份目录和交换目录设置为工作目录?
- node.js - 在节点 JS 中解析 Json 数据
- python - AttributeError:“用户”对象没有属性“获取”-带有 PyMongo 的 Flask-Login 用户类
- python - 如何从 Modbus Slave 读取所有保持寄存器?
- postgresql - PostgreSQL UPDATE ON CONFLICT 仅在某些情况下
- c# - 元素的值不会改变