ms Access - Microsoft.ACE.OLEDB.12.0 提供程序无法再在 Windows 8 下打开.



我有一个x64应用程序,它使用Microsoft.ACE.OLEDB.12.0提供程序来读取Windows 7(x64)上的MS Access数据库,并且工作正常(已安装Office 2010)。

在安装了 Office 2013 的 Windows 8 下运行的同一应用程序失败,并显示一条消息,指出提供程序无法打开以前的版本。

在安装了Office 2013的Windows 8下,还有Microsoft.ACE.OLEDB.15.0,但我仔细检查了我的代码,并确定它在连接字符串中指定了12.0。

这个提供程序是否有不同的"版本"——或者我错过了什么?

我已经在Windows 8下重新编译了一个测试程序以使用x86平台,并将提供程序更改为Microsoft.Jet.OLEDB.4.0,一切再次运行。不幸的是,该模块是一个更大的生态系统的一部分,需要能够在x64下运行(特别是excel的插件),并且访问数据库由套件通过应用程序从供应商的网站下载,因此转换数据库或将所有内容更改为x86是不切实际的。

提前谢谢。

我突然检查每个提供程序使用的文件版本,并搜索注册表,发现在安装了Office 2013的干净Windows 8安装下,两个提供程序都指向同一程序集。

(C:\Program Files\Common Files\Microsoft shared\OFFICE15\ACEOLEDB.DLL)

然后,我下载并运行了 Microsoft Access 数据库引擎可再发行组件 (http://www.microsoft.com/en-us/download/details.aspx?id=13255),然后将正确版本的 12.0 提供程序安装到 C:\Program Files\Common Files\microsoft shared\OFFICE14\ACEOLEDB 中.DLL并且应用程序按预期运行。

MS 包含一个标记为 12.0 的

提供商,该提供程序的行为不再像 12.0,这似乎很奇怪。

无论如何 - 希望能帮助某人从 4-5 小时的头发拉...

克雷格

安装较旧的 ACE 可再发行组件的问题在于,下次在 Office 2013 中运行 Access 时,Office 将"修复"自身并将版本 12 的指针切换回 Office15 目录。

只是为了澄清OP描述的行为:

在 Office 2013 (ACE 15.0) 中,Microsoft取消了对使用 Jet 3.x 及更早版本(即 Access 97 及更早版本)创建的 mdb-Files 的支持。因此,我强烈假设导致问题的OP数据库是Access97-DB。Jet 4.0 数据库(Access 2000、aslo .mdb)仍受支持,不会产生任何错误。

Office 2013 还将其较新的驱动程序注册为早期版本这一事实是 MS 故意尝试保持许多程序和脚本正常工作,这些程序和脚本内置了硬编码的提供程序名称。正如您在升级时所认识到的那样,这只会让许多人正常工作,而不是全部......

我使用的是Windows 8.1 64位Microsoft Office 2013我安装了"Microsoft Access 数据库引擎 2010 可再发行组件",但没有任何变化,并且得到相同的错误,但是!安装"2007 Office 系统驱动程序:数据连接组件"解决了该问题。

我通过此链接找到了这个解决方案。

尝试连接到 Visual Studio 中的 Access 数据库,但保留 收到此错误?

首先尝试安装它: http://www.microsoft.com/download/en/details.aspx?id=13255

但是,如果像我一样,这对您不起作用,请尝试以下操作 方法:

注意:这确实适用于 Office 2010,即使它适用于 2007 办公室,不要问我为什么它只是:)

  1. 下载并安装以下内容: http://www.microsoft.com/download/en/confirmation.aspx?id=23734

  2. 在VS中单击添加数据源,按照向导进行操作即可享受! :)

此外,似乎 32 位版本的可再发行组件适用于 64 位 Windows 操作系统上的 Office 2013_64 位,而 64 位版本的可再发行组件在我的情况下则不然

  1. 安装 Microsoft Access 数据库引擎 2010 可再发行组件 x 64(http://www.microsoft.com/en-us/download/details.aspx?id=13255)
  2. 将您的数据库转换为新格式 (.mdb -> .accdb)
  3. 在整个项目中搜索"Microsoft.Jet.OleDb.4.0"并将其替换为 Microsoft.ACE.OLEDB.12.0

最新更新