【发布时间】:2014-12-22 22:32:05
【问题描述】:
我在包含搜索词的表单上有一个组合框。用户选择一个搜索词并查找包含数字 X 的表。假设类别等于字符串“PHYS”,则在另一个表中查找 X 的 RVU(数字)。我使用嵌套的 DLOOKUP 语句来查找数字 X,然后使用该数字 X 和字符串条件来查找 RVU。这是我的代码:
FH_array(0) = Val(Nz(DLookup("[RVU]", "[FORES IP Picker]", "[IP]= " & Val(Nz(DLookup("[FORES]", "[IP Number Xwalk]", "[Reference Name] = '" & Me.Ref_Name & "'"), 0))), ""))
我运气不好,所以我把它分解调试:
a = Val(Nz(DLookup("[FORES]", "[IP Number Xwalk]", "[Reference Name] = '" & Me.Ref_Name & "'"), 0))
Debug.Print "a:"; a 'returns value 279
aa = Val(nz(DLookup("[RVU]", "[FORES IP Picker]", "[IP] = " & a & " and [Cost Category] = 'PHYS')))
Debug.Print "aa:"; aa
我在变量 aa 的行上遇到语法错误。如果我将代码从
aa = DLookup("[RVU]", "[FORES IP Picker]", "[IP] = " & a & " and [Cost Category] = 'PHYS')
到
aa = DLookup("[RVU]", "[FORES IP Picker]", "[Cost Category] = 'PHYS'" And "[IP] = " & a)
我得到一个运行时错误 13 类型不匹配
所有变量都被声明为变体并正确调用。数组 FH_array 的大小正确。我从另一个执行相同类型的嵌套 DLOOKUP 的数据库中复制了这段代码,但它只有一个标准,因此可以工作。我无法弄清楚我缺少什么语法或类型不匹配的位置才能使其正常工作。
【问题讨论】:
-
@HansUp 第一个结果是
[IP] = 279 and [Cost Category] = 'PHYS',第二个结果是错误类型13
标签: ms-access vba syntax-error type-mismatch