ms-access - 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:
- start visual studio 2017 community
- from menu bar choose: tools | connect to database
- from dialog choose: Microsoft Access Database File (OLE DB)
- browse to access 2013 database file
- 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:
- Microsoft Access 2013 x64
- Microsoft Access database engine 2016 x64
- Microsoft Access Runtime 2013 x64
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
解决方案
看起来 Visual Studio 2017 是一个 32 位应用程序,只能“看到”32 位数据源。
我无法以直接的方式安装 32 位驱动程序,因为如果您安装了 64 位办公室,驱动程序的 32 位安装程序将不允许您运行它(我这样做了,我不想回到32 位办公室)。
但是,从其他帖子中,我意识到如果使用 /passive 标志,32 位 2010 Access 运行时包可以与 64 位 office 一起安装。(FWIW,我想我首先测试了 2013 访问运行时包,但无法让它与 64 位驱动程序一起安装 32 位驱动程序)。
一旦我安装了 32 位驱动程序,VS 就能够看到我的数据源并且一切正常。
推荐阅读
- javascript - REDUX:通过 this.props 访问的存储变量已过时,但 store.getState() 有效
- angular - 获取Form Array中的第0个元素FormControl,angular8
- c# - XML反序列化在c#中返回0结果
- reactjs - 使用 useContext 和 useReducer 进行状态管理并使用 useEffect 获取数据
- java - 遍历 Java 2D 数组中的列是否与行一样有效?
- python - pandas 直方图中的次要 y。传说不见了
- android - 在android应用程序的webview中使用html定位图像粘贴的问题
- javascript - 从 HTTPS 页面到 HTTP(非 HTTPS)本地主机地址的混合内容请求未被阻止
- r - 如何在 R 中翻转数值数据?
- javascript - 引用课外的 div