在Office 2013 64位上使用OLEDB连接

我知道有一些相关的线程。 但是,他们似乎都没有解决我的问题。 我正在把我确切的问题放在这里。 有人可以帮我弄这个吗?

环境 – Windows 7 64位,Office 2013 64位

自动化 – Excel中VBA中的macros,通过使用下面提到的驱动程序连接到.mdb文件,可以将一些数据导入

问题 – 运行时错误3706,找不到提供程序。 它可能没有正确安装

尝试1 – 我在线检查了错误代码,大多数线程指出语法错误和连接方式。 我试图实施的build议,但没有影响

尝试2 – 我发现这是因为它试图使用64位办公室的旧驱动程序。 因此,我然后尝试安装最stream行的build议 – 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年的全部办公室工作,任何解决scheme都是受欢迎的。

谢谢!

如果您从问题中的链接下载并安装驱动程序,则会注意到“安装说明”中有一个名为“使用此下载:”的部分。 该部分下的#2指出,您需要将ConnectionString属性的Provider参数更改为“Microsoft.ACE.OLEDB.12.0”而不是"Microsoft.Jet.OLEDB.4.0"

我用Excel 32位和64位replace的参数运行你的修改后的代码,它的工作原理:

 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中使用,根据这篇文章:

Microsoft.Jet.OleDb和Microsoft.Ace.OleDb之间的区别