我正在嘗試呼叫我的 Access 資料庫中需要一個引數(條件)的存盤查詢。當我嘗試這個時,當它到達行 cmd(1)=userName 時,我得到運行時錯誤'3265':“在與請求的名稱或序號相對應的集合中找不到專案”。

上面的 msgbox 行顯示引數計數為 0,但計數應該為 1。
Function getUserLevelCmd() As String
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim cmd As New ADODB.Command
Set conn = makeConnection()
cmd.CommandText = "accessLevelByUN"
cmd.CommandType = adCmdStoredProc
cmd.ActiveConnection = conn
cmd.Parameters.Refresh
MsgBox (cmd.Parameters.Count)
cmd(1) = userName
Set rs = cmd.Execute
rs.Close
conn.Close
Set cmd = Nothing
End Function
我仔細檢查了所有的拼寫。我知道與我的資料庫的連接很好,因為我可以使用它來執行其他 SQL 查詢。它只是存盤有我堅持的引數的查詢。我的嘗試基于 Microsoft 的本教程:

The SQL-view of the of the query in access:

Anyone have any tips?
uj5u.com熱心網友回復:
adCmdStoredProc 似乎不是為 MsAccess 查詢而設計的。將其更改為 adCmdTable。此外,在設定引數值時,它們從零開始索引。
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim cmd As New ADODB.Command
Set conn = makeConnection()
cmd.CommandText = "accessLevelByUN"
cmd.CommandType = adCmdTable
cmd.ActiveConnection = conn
cmd.Parameters.Refresh
MsgBox (cmd.Parameters.Count)
cmd.Parameters(0) = userName
Set rs = cmd.Execute
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/433505.html
標籤:excel vba ms-access stored-procedures ado
上一篇:回傳不是數字的最后一個單詞
