我正在尝试从MS Access 2007在MS SQL Server 2012中执行存储过程。我已添加Microsoft ActiveX数据对象2.8库作为参考。 这是我的VBA代码:
Function Sproc()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim cmd As ADODB.Command
Dim cnnStr As String
Dim Rs As New ADODB.Recordset
Dim StrSproc As String
cnnStr = "Provider=test\SQL2012;Data Source=DBSource;" & "Initial Catalog=test;" & _
"Integrated Security=SSPI;"
With cnn
.CommandTimeout = 900
.ConnectionString = cnnStr
.Open
End With
With cmd
.ActiveConnection = cnn
.CommandType = adCmdStoredProc
.CommandText = "[test]"
.Parameters.Append .CreateParameter("@ID", adInteger, adParamInput, , Me.ID)
End With
With Rs
.CursorType = adOpenStatic
.CursorLocation = adUseClient
.LockType = adLockOptimistic
.Open cmd
End With
Set rst = cmd.Execute
End Function
运行该函数时,出现以下错误
任何帮助将不胜感激。 谢谢。
答案 0 :(得分:3)
您需要使用有效的提供程序。提供者不是数据库的名称。
根据安装的内容,可能会提供不同的提供程序。 sqloledb
提供者是常见的提供者。
cnnStr = "Provider=sqloledb;Data Source=test\SQL2012;Initial Catalog=DBSource;" & _
"Integrated Security=SSPI;"