2013-02-08 126 views
2

在Access中通过VBA运行查询时,我总是收到运行时错误“2465”。Microsoft Access无法找到字段“| 1”

错误:微软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有一个字段格式的文本,而不是一个数字。这有什么关系吗?

回答

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 

你没有一个等号/像和VBA的串接为&,不+,采用+可能会导致空值的问题,但在这种情况下,我认为这个问题是缺少的一样,那就是

TestID Like "*something" 

您可以控制子窗体的内容与组合和链接字段:

combo link

+0

仍然得到相同的错误...它在点击调试后不断突出显示'.RecordSource'行。 – Muhnamana 2013-02-08 20:06:58

+0

难道它与“而不是”有什么关系? – Muhnamana 2013-02-08 20:07:44

+0

我怀疑它,但我刚刚注意到另一个问题。什么是[Form_Test(subform)]?你真的有一个名为[Form_Test(subform)]的控件吗?你是否已经将sql粘贴到查询窗口中进行测试? – Fionnuala 2013-02-08 20:10:13

2

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

0

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

相关问题