3

在 Access 中通过 VBA 运行查询时,我不断收到运行时错误“2465”。

错误:Microsoft Access 找不到表达式中引用的字段“|1”

我似乎无法找到发生此问题的位置。下面是我目前用来重新查询表单的 VBA 代码。

Dim Test As String
Test = "*" & Combo161.Value

Dim strSQL As String
Dim strWhere As String
strWhere = (Chr(34) + Test + (Chr(34)))

'MsgBox (strWhere)

strSQL = "SELECT * FROM Test_Query WHERE TestID " & strWhere

'MsgBox (strSQL)
[Form_Test (subform)].RecordSource = strSQL
[Form_Test (subform)].Requery

具有文本的TestID字段格式,而不是数字。这有关系吗?

4

3 回答 3

3

我刚刚修复了这个错误。我引用了子表单的源对象,而不是表单属性中给出的名称。

于 2016-03-09T23:20:58.547 回答
2

我有同样的错误。我缺少的是字符串周围的双引号。这个错误有点误导。检查语法等,您会发现问题与逗号或双引号等有关。

于 2013-09-12T23:06:29.430 回答
1

尝试:

Dim Test As String
Test = "*" & Combo161.Value

Dim strSQL As String
Dim strWhere As String
strWhere = (Chr(34) & Test & (Chr(34)))

'MsgBox (strWhere)

strSQL = "SELECT * FROM Test_Query WHERE TestID Like " & strWhere

'To test
'Debug.print strSQL

如果这是一个子表单,那么:

Me.[Form_Test (subform)].Form.RecordSource = strSQL
''Not needed when changing record source
''Me.[Form_Test (subform)].Form.Requery

您没有等号 / Like 并且 VBA 中的连接符是 &,而不是 +,使用 + 会导致空值问题,但在这种情况下,我认为问题是缺少 Like,即

TestID Like "*something"

您可以使用组合和链接字段控制子表单的内容:

组合链接

于 2013-02-08T19:57:12.563 回答