Excel 2010与Access 2013兼容

我们使用Excel 2013创build了Excel应用程序,该应用程序连接到存储在networking驱动器(所有员工都可以访问)的Access 2013数据库。 它为所有数据连接使用“Microsoft Access数据库”连接types,并且在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中创build连接,但是这导致了在使用2013年时的连接问题。

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

每个数据连接中的连接string如下所示:

 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 

任何帮助将不胜感激!

我发现唯一的解决scheme是卸载Office 2013并安装Office 2010.然后,我在Office 2010中重新创build了Access数据库并进行了debugging,直到它工作。

Office 2010使用参考“Microsoft Outlook 14.0对象库”,而2013年使用“Microsoft Outlook 15.0对象库”。 这解决了一些错误,但仍然没有解决连接问题。

在2010年重新创buildAccess之后,我重新build立了连接,并解决了这个问题。 简单地说,如果你想让它在早期的版本中工作,那么在早期版本中就可以了。

感谢您的帮助。