Excel 2010 与 Access 2013 的兼容性

Excel 2010 compatibility with Access 2013

我们使用 Excel 2013 创建了一个 Excel 应用程序,它连接到存储在网络驱动器上的 Access 2013 数据库(所有员工都可以访问)。它对所有数据连接使用 "Microsoft Access Database" 连接类型,我在 Excel 2013 中进行了 运行 反向兼容性检查,没有发现任何问题。我还使用 VBA 代码写回 Access 数据库。所有连接都使用 Microsoft.ACE.OLEDB.12.0 提供程序。

该应用程序适用于使用 Excel 2013 的任何人,但是,我们的目标受众是 2010 年和 2013 年的混合体,因此它需要同时适用于两者。

当使用 2010 的用户打开应用程序时,他们首先会收到提示: "Do you want to connect to '\database address.accdb'?"

如果你说是然后继续尝试连接它会给你一个错误: "Test connection failed because of an error in initializing provider. Your network access was interrupted. To continue, close the database, and then open again."

我也曾尝试在 Excel 2010 年创建连接,但这导致在使用 2013 时出现连接问题。

简而言之,我们根本无法创建适用于 2010 和 2013 Excel 版本的 Access 2013 数据库的通用连接。

每个数据连接中的连接字符串如下:

Provider=Microsoft.ACE.OLEDB.12.0
;User ID=Admin
;Data Source='file name'
;Mode=Share Deny None
;Extended Properties=""
;Jet OLEDB:System database=""
;Jet OLEDB:Registry Path=""
;Jet OLEDB:Engine Type=6
;Jet OLEDB:Database Locking Mode=1
;Jet OLEDB:Global Partial Bulk Ops=2
;Jet OLEDB:Global Bulk Transactions=1
;Jet OLEDB:New Database Password=""
;Jet OLEDB:Create System Database=False
;Jet OLEDB:Encrypt Database=False
;Jet OLEDB:Don't Copy Locale on Compact=False
;Jet OLEDB:Compact Without Replica Repair=False
;Jet OLEDB:SFP=False
;Jet OLEDB:Support Complex Data=False
;Jet OLEDB:Bypass UserInfo Validation=False
;Jet OLEDB:Limited DB Caching=False
;Jet OLEDB:Bypass ChoiceField Validation=False

如有任何帮助,我们将不胜感激!

我找到的唯一解决方案是卸载 Office 2013 并安装 Office 2010。然后我在 Office 2010 中重新创建了 Access 数据库并进行了调试,直到它正常工作。

Office 2010 使用参考 "Microsoft Outlook 14.0 Object Library",而 2013 使用 "Microsoft Outlook 15.0 Object Library"。这解决了一些错误,但仍然没有解决连接问题。

在 2010 年重新创建 Access 后,我只是重新建立了连接并解决了这个问题。简单地说(对很多人来说很容易)如果你想让它在早期版本中工作,在早期版本中开发。

感谢您的帮助。