运行时错误'3706':无法找到提供程序--Visual Basic

时间:2013-11-29 05:18:58

标签: vba ms-access-2010

我正在尝试使用ADODB将Visual Basic连接到MS Access。但是当我执行我的代码时,它会提示:“无法找到提供程序。可能无法正确安装。”但是当我检查我的目录时,我已经安装了“msjetoledb40.dll”。

这是我的代码:

Dim conn As ADODB.Connection, rec As ADODB.Recordset

    Sub sample()

    Set conn = New ADODB.Connection

    conn.Open ("Provider=Microsoft.Jet.OLEDB 4.0;Data Source=C:\sample.mdb;Persist Security Info=false;")
End Sub

3 个答案:

答案 0 :(得分:3)

这会更好:

Sub sample()

  Dim conn As ADODB.Connection, rec As ADODB.Recordset
  Set conn = New ADODB.Connection
  conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\sample.mdb;"
  conn.Open
End Sub

你错过了一点。

Microsoft.Jet.OLEDB 4.0 => Microsoft.Jet.OLEDB.4.0

参考:http://www.connectionstrings.com/

答案 1 :(得分:2)

确认运行脚本的MS Office版本。如果已安装MS Office 2013或更高版本,则应修改以下连接字符串:

Provider=Microsoft.Jet.OLEDB 4.0;Data Source=C:\sample.mdb;Persist Security Info=false;

为:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\sample.mdb;Persist Security Info=false;

至少,这解决了我的问题。

答案 2 :(得分:0)

我的解决方案:

错误3706

cs = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & sPath & ";Persist Security Info=False;"

只需更改12.0 for 15.0

cs = "Provider=Microsoft.ACE.OLEDB.15.0;Data Source=" & sPath & ";Persist Security Info=False;"

并且有效,总是必须尝试更改控制器的版本!。