ACE OLEDB连接到Access Runtime 2016

问题描述:

我有一个与 Access runtime 2013(32位)集成的工作代码(读取Excel文件).

I have a working code that integrates with Access runtime 2013 (32bit) (reading an Excel file).

我删除了2013版本,并安装了 Access runtime 2016 版本.

I removed the 2013 version, and installed the Access runtime 2016 version instead.

这是我正在使用的连接字符串(适用于2013年):

This is the connection string I'm using (that worked with 2013):

Provider=Microsoft.ACE.OLEDB.15.0;Data Source=C:\\Users\\myuser\\Desktop//District.xls;Extended Properties=\"Excel 12.0;HDR=YES;\";

还使用 Microsoft.Office.Interop.Excel 版本15.0.0.0,运行时版本v2.0.50727

运行代码时出现错误:

"Microsoft.ACE.OLEDB.15.0"提供程序未在本地计算机上注册.

The 'Microsoft.ACE.OLEDB.15.0' provider is not registered on the local machine.

要解决此问题需要做什么?

what needs to be done in order to fix this?

我已经安装了Office 2016 x64,Access 2016 Runtime x64,Access数据库引擎2016 Redistributable x64.此外,将连接字符串更改为Microsoft.ACE.OLEDB.16.0.收到错误消息

I have office 2016 x64, Access 2016 Runtime x64, Access Database Engine 2016 Redistributable x64, all installed. Also, changed connection string to be Microsoft.ACE.OLEDB.16.0. Getting error message

"Microsoft.ACE.OLEDB.16.0"提供程序未在本地计算机上注册.

The 'Microsoft.ACE.OLEDB.16.0' provider is not registered on the local machine.

我们发现该问题是多线程环境中的已知问题,目前尚无解决方案.

We found out that the problem is a known issue in a multi-threaded environment, and currently there is no solution.

最好继续使用较新的解决方案,因为这是访问Excel文件的旧方法.

It's probably best to just move on to a newer solution, since this is an old way of accessing Excel files.