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

4
我将尝试使用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

我遇到了相同的错误!在我的情况下,我正在尝试使用Office 365 Excel VB脚本连接安装有Oracle 11g的Sql数据库。我已安装MDAC驱动程序,但问题仍未解决。 - Abdul Rafi
3个回答

3
确认运行脚本的 MS Office 版本。如果您安装了 MS Office 2013 或更高版本,则应该从以下内容修订连接字符串:
Provider=Microsoft.Jet.OLEDB 4.0;Data Source=C:\sample.mdb;Persist Security Info=false;

to:

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

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

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/


哦!一个点号怎么能毁了你的代码。谢谢,这是对我又一次的教训。 - Kentot

0

我的解决方案:

错误3706

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

只需将12.0更改为15.0

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

并且如果出现问题,您必须尝试更改控制器的版本!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接