2013-02-08 51 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

我剛剛修復此錯誤。我引用了子窗體的源對象,而不是表單屬性中給出的名稱。

相關問題