Excel VBA 在Access中使用ADO命令对象调用存储查询
Excel VBA Use ADO Command Object to Call Stored Query in Access
我正在尝试调用我的 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 的本教程:
https://docs.microsoft.com/en-us/sql/ado/guide/data/calling-a-stored-procedure-with-a-command?view=sql-server-ver15
这是这个简单查询在 Access 中的设计视图(参数以红色圈出):
Access中查询的SQL视图:
有人有什么建议吗?
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
...
我正在尝试调用我的 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 的本教程: https://docs.microsoft.com/en-us/sql/ado/guide/data/calling-a-stored-procedure-with-a-command?view=sql-server-ver15
这是这个简单查询在 Access 中的设计视图(参数以红色圈出):
Access中查询的SQL视图:
有人有什么建议吗?
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
...