我在Access 2010中有兩個文本框(輸入搜索條件的AIPIDTxt和顯示結果的AIPResultTxt)和一個按鈕(搜索按鈕)。我在Access中也有一個Table Table1。當我單擊搜索按鈕時,我需要執行一個查詢,其條件位於表單中的AIPIDTxt文本框中,將結果存儲在記錄集中,並將結果顯示在文本框AIPResultTxt中。所以我在按鈕事件處理程序中輸入了下面的VBA代碼。運行時錯誤3464:標準表達式中的數據類型不匹配
Private Sub SearchB_Click()
Dim localConnection As ADODB.Connection
Dim query As String
Dim aipid_rs As ADODB.Recordset
Dim db As Database
Set db = CurrentDb
Set localConnection = CurrentProject.AccessConnection
MsgBox "Local Connection successful"
query = "SELECT [AIP Name] FROM [Table1] WHERE [AIP ID]=
" & [Forms]![AIPIDSearchF]![AIPIDTxt] & ""
Set aipid_rs = db.OpenRecordset(query)
Me.AIPResultTxt.Text = aipid_rs![AIP Name]
End Sub
但是,當我按一下按鈕我得到本地連接成功的消息框,然後運行時錯誤3464在行:
Set aipid_rs= db.OpenRecordset(query)
...我已經尋找類似的錯誤,並作出更正。但錯誤不斷。我的查詢有問題嗎?無法找出錯誤。該表是本地表。所以我可以在vba中直接給查詢中的[Table1]和字段名稱。試圖添加分隔符,因爲這些字段是文本字段。但是這並沒有奏效。我也不能給出以下查詢:
query = "SELECT [AIP Name] FROM [Table1] WHERE [AIP ID]= " & [Forms]![AIPIDSearchF]!
[AIPIDTxt].Text & ""
這給了我一個運行時錯誤,指出文本不能從失去焦點的控件引用。我的標準是文本框中的文本。當我點擊按鈕時,文本框會失去焦點。但是當我搜索錯誤時,解決方案是刪除「.Text」。所以,我結束了上面的查詢。不知道什麼是錯行:
Set aipid_rs= db.OpenRecordset(query)
列「AIP_ID」的數據類型是什麼? – shahkalpesh
@shahkalpesh:AIP ID是文本數據類型 –
您需要在查詢值周圍加引號。 –