我試圖從Excel 2007 VBA腳本在Access 2007數據庫中運行查詢。 Access查詢具有稱爲「年」和「月」的參數。在Excel中運行參數查詢訪問2007時出現錯誤vba
我試圖讓下面的代碼工作:
Sub RunMyQuery()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim dbPath As String
Dim stQRY As String
Dim stCon As String
Dim cmd As New ADODB.Command
Dim prmYear As New ADODB.Parameter
Dim prmMonth As New ADODB.Parameter
dbPath = "<PATH_TO_MY_DB>"
stCon = "Provider=Microsoft.ACE.OLEDB.12.0;" _
& "Data Source=" & dbPath & ";"
cn.Open (stCon)
cn.CursorLocation = adUseClient
Set cmd.ActiveConnection = cn
Set prmYear = cmd.CreateParameter("Year", adNumeric, adParamInput, , 2011)
Set prmMonth = cmd.CreateParameter("Month", adNumeric, adParamInput, , 5)
cmd.Parameters.Append prmYear
cmd.Parameters.Append prmMonth
cmd.CommandText = "SELECT * FROM [Month_Totals]"
cmd.CommandType = adCmdTable
Set rs = cmd.Execute
Sheets("Sheet1").Range("A1").CopyFromRecordset rs
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
當我運行此,該代碼的「cmd.Execute」停止與
運行時錯誤「 - 214217900(80040e14)':
FROM子句中的語法錯誤。
我得到了什麼問題?
命令文本對我來說似乎很簡單。我在那裏錯過了什麼?
我濫用ADODB.Command的參數功能嗎?我不認爲這是這裏的問題,因爲我試着用非參數化的查詢替代Month_Totals來運行這個相同的腳本,並且得到了同樣的錯誤。
我不知道這是否適用(我工作直接訪問,所以不要使用ADODB),但我認爲沒有命名參數,所以你需要通過命令來處理它們。 –