MS Access错误-找不到提供程序。可能未正确安装

时间:2018-08-06 09:46:33

标签: stored-procedures sql-server-2012 access-vba ms-access-2007

我正在尝试从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

运行该函数时,出现以下错误

Error message

任何帮助将不胜感激。 谢谢。

1 个答案:

答案 0 :(得分:3)

您需要使用有效的提供程序。提供者不是数据库的名称。

根据安装的内容,可能会提供不同的提供程序。 sqloledb提供者是常见的提供者。

cnnStr = "Provider=sqloledb;Data Source=test\SQL2012;Initial Catalog=DBSource;" & _
         "Integrated Security=SSPI;"