首页 > 解决方案 > The dreaded 'Microsoft.ACE.OLEDB.12.0' provider is not registered in Visual Studio 2017

问题描述

I am receiving the error "'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine" when performing the following steps:

  1. start visual studio 2017 community
  2. from menu bar choose: tools | connect to database
  3. from dialog choose: Microsoft Access Database File (OLE DB)
  4. browse to access 2013 database file
  5. click "test connection"

I realize there are many other posts regarding this issue but I have reviewed many of them and tried solutions listed to no avail.

I have the following installed:

Running the following powershell script seems to confirm the driver is installed:

PS C:\Users\zwrm1> (New-Object system.data.oledb.oledbenumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTI
ON

SOURCES_NAME               SOURCES_DESCRIPTION
------------               -------------------
SQLOLEDB                   Microsoft OLE DB Provider for SQL Server
MSOLAP                     Microsoft OLE DB Provider for Analysis Services 11.0
MSOLAP                     Microsoft OLE DB Provider for Analysis Services 11.0
MSDataShape                MSDataShape
SQLNCLI11                  SQL Server Native Client 11.0
Microsoft.ACE.OLEDB.12.0   Microsoft Office 12.0 Access Database Engine OLE DB Provider
Microsoft.ACE.OLEDB.15.0   Microsoft Office 15.0 Access Database Engine OLE DB Provider
Microsoft.ACE.OLEDB.16.0   Microsoft Office 16.0 Access Database Engine OLE DB Provider
ADsDSOObject               OLE DB Provider for Microsoft Directory Services
SQLNCLI11 Enumerator       SQL Server Native Client 11.0 Enumerator
Windows Search Data Source Microsoft OLE DB Provider for Search
MSDASQL                    Microsoft OLE DB Provider for ODBC Drivers
MSDASQL Enumerator         Microsoft OLE DB Enumerator for ODBC Drivers
SQLOLEDB Enumerator        Microsoft OLE DB Enumerator for SQL Server
MSDAOSP                    Microsoft OLE DB Simple Provider
MSOLAP                     Microsoft OLE DB Provider for Analysis Services 13.0
MSOLAP                     Microsoft OLE DB Provider for Analysis Services 13.0

How can I fix this error and successfully open my access database in visual studio 2017 community?

Thanks for any thoughts, zwrm1

标签: ms-accessoledb

解决方案


看起来 Visual Studio 2017 是一个 32 位应用程序,只能“看到”32 位数据源。

我无法以直接的方式安装 32 位驱动程序,因为如果您安装了 64 位办公室,驱动程序的 32 位安装程序将不允许您运行它(我这样做了,我不想回到32 位办公室)。

但是,从其他帖子中,我意识到如果使用 /passive 标志,32 位 2010 Access 运行时包可以与 64 位 office 一起安装。(FWIW,我想我首先测试了 2013 访问运行时包,但无法让它与 64 位驱动程序一起安装 32 位驱动程序)。

一旦我安装了 32 位驱动程序,VS 就能够看到我的数据源并且一切正常。


推荐阅读