【问题标题】:Run time error '3706': Provider cannot be found -Visual Basic运行时错误“3706”:找不到提供程序 -Visual Basic
【发布时间】:2013-12-15 05:50:04
【问题描述】:

我正在尝试使用 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 驱动程序,但问题仍未解决。

标签: vba ms-access-2010


【解决方案1】:

这样会更好:

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/.

【讨论】:

  • 哦!怎么一个'.'可能会破坏您的代码。谢谢,这对我来说又是一个教训。
【解决方案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;

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

【讨论】:

    【解决方案3】:

    我的解决方案:

    错误 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;"
    

    并且工作正常,您必须尝试更改控制器的版本!。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多