数字字段名称的DLookup交叉表查询

时间:2017-08-21 21:43:34

标签: vba ms-access access-vba

我有一个带有数字字段的交叉表值的交叉表,其值为1,2,3,4,5。

这会导致查询字段名称看起来是数字的:即" 1"," 2"," 3"," 4&#34 ;," 5"。

但是,当我对此查询执行Dlookup时,例如:

x1 = DLookup("1", "aQuery", "SampleCode ='" & SampleCode & "'")
x2 = DLookup("2", "aQuery", "SampleCode ='" & SampleCode & "'")
x3 = DLookup("3", "aQuery", "SampleCode ='" & SampleCode & "'")
x4 = DLookup("4", "aQuery", "SampleCode ='" & SampleCode & "'")
x5 = DLookup("5", "aQuery", "SampleCode ='" & SampleCode & "'")

我只返回1,2,3,4和5,而不是字段中的值。即使我这样做也会发生这种情况:

x1 = dlookup(1,"aQuery",...)

有什么想法吗?感谢

1 个答案:

答案 0 :(得分:3)

你的DLookup

x1 = DLookup("1", "aQuery", "SampleCode ='" & SampleCode & "'")

将您编写的内容解释为从对象aQuery中查找 1的命令。结果将始终是您在第一个参数中提供的值。

为避免歧义,请使用方括号指定字段名称(仍然用引号括起整个内容,以便将其作为字符串提供给Dlookup)。

x1 = DLookup("[1]", "aQuery", "SampleCode ='" & SampleCode & "'")

或更好:

x1 = DLookup("[1]", "aQuery", "[SampleCode] ='" & [SampleCode] & "'")

括号并不总是必要的,但包含它们永远不会产生问题,所以在使用Access时这是一个很好的习惯。