简体   繁体   English

Excel 2010与Access 2013的兼容性

[英]Excel 2010 compatibility with Access 2013

We created an Excel application using Excel 2013 that connects to an Access 2013 database that's stored on a network drive (all associates have access to). 我们使用Excel 2013创建了一个Excel应用程序,该应用程序连接到存储在网络驱动器上的Access 2013数据库(所有员工均可访问)。 It uses "Microsoft Access Database" connection types for all of the data connections and I have ran the reverse compatibility check in my Excel 2013 and it found no issues. 它对所有数据连接使用“ Microsoft Access数据库”连接类型,并且我在Excel 2013中运行了反向兼容性检查,但没有发现问题。 I am also using VBA code to write back to the Access database. 我还使用VBA代码写回Access数据库。 All connections are using the Microsoft.ACE.OLEDB.12.0 provider. 所有连接都使用Microsoft.ACE.OLEDB.12.0提供程序。

The application works flawlessly for anyone using Excel 2013, however, our target audience is a mix of 2010 and 2013, so it needs to work for both. 该应用程序对于使用Excel 2013的任何人都可以完美运行,但是,我们的目标受众是2010年和2013年的混合用户,因此它需要同时适用于两者。

When a user with 2010 opens the application they first get a prompt: "Do you want to connect to '\\\\database address.accdb'?" 使用2010的用户打开应用程序时,他们首先会收到提示: "Do you want to connect to '\\\\database address.accdb'?"

If you say yes and then proceed to try and connect it gives you an error: "Test connection failed because of an error in initializing provider. Your network access was interrupted. To continue, close the database, and then open again." 如果您说是,然后继续尝试进行连接,则会出现错误: "Test connection failed because of an error in initializing provider. Your network access was interrupted. To continue, close the database, and then open again."

I've also tried to create connections in Excel 2010 but this led to connection issues when using 2013. 我也尝试在Excel 2010中创建连接,但这在使用2013时导致连接问题。

So in short, we are simply unable to create a universal connection to our Access 2013 database that works for both 2010 and 2013 Excel versions. 简而言之,我们根本无法创建到Access 2013数据库的通用连接,该数据库适用于2010和2013 Excel版本。

The connection string is as follows in each of the data connections: 每个数据连接中的连接字符串如下:

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

Any help would be greatly appreciated! 任何帮助将不胜感激!

My only resolution that I found was to uninstall Office 2013 and install Office 2010. I then recreated the Access Database in Office 2010 and debugged until it was working. 我找到的唯一解决方案是卸载Office 2013和安装Office2010。然后我在Office 2010中重新创建了Access数据库,并进行了调试,直到其正常工作为止。

Office 2010 uses reference "Microsoft Outlook 14.0 Object Library" while 2013 uses "Microsoft Outlook 15.0 Object Library". Office 2010使用参考“ Microsoft Outlook 14.0对象库”,而2013使用“ Microsoft Outlook 15.0对象库”。 This resolved some of the bugs but it still didn't resolve the connection issues. 这解决了一些错误,但仍然无法解决连接问题。

After I recreated the Access in 2010 I simply re-established the connections and this resolved it. 在2010年重新创建Access之后,我只是重新建立了连接并解决了该问题。 Simply put (no-brainer for many) if you want it to work in early versions, dev in early versions. 如果您希望它在早期版本中工作,而在早期版本中工作,则只需简单地放置(很多人无需费神)。

Thanks for helping. 感谢您的帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM