我知道有很多线程与此相关。然而,他们似乎都没有解决我的问题。我在这里记下我的确切问题。有人可以帮我这个吗?
环境 - Windows 7 64位,Office 2013 64位
自动化 - Excel中VBA中的宏,它将使用下面提到的驱动程序将某些数据导入.mdb文件
问题 - 运行时错误3706,无法找到提供程序。它可能没有正确安装
尝试1 - 我在线检查了错误代码,大多数线程都指出了语法错误和连接方式。我尝试实施建议,但没有影响
尝试2 - 然后我发现这是因为它试图使用64位写入的旧驱动程序。因此,我尝试安装最受欢迎的建议 - http://www.microsoft.com/en-us/download/details.aspx?id=13255 这也没有用
代码 -
database_path = Application.ActiveWorkbook.path & "\" & "mydb.mdb"
Set cn = CreateObject("ADODB.Connection")
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & database_path
End With
cn.Open
任何解决方案都是受欢迎的,只要它适用于所有 - 办公室2007年,2010年和2013年。
谢谢!
答案 0 :(得分:4)
如果您从问题中的链接下载并安装了驱动程序,您会注意到"安装说明"有一个名为"要使用此下载的部分:"。该部分下的#2声明您需要将ConnectionString属性的Provider参数更改为“Microsoft.ACE.OLEDB.12.0”
而不是"Microsoft.Jet.OLEDB.4.0"
。
我使用Excel 32位和64位的替换参数运行修改后的代码并且它可以工作:
Set cn = CreateObject("ADODB.Connection")
With cn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source=" & database_path & ";"
cn.Open
End With
您下载的ACE驱动程序可根据本文在Office 2007,2010和2013中使用:
Difference between Microsoft.Jet.OleDb and Microsoft.Ace.OleDb