“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册,即使它已经安装了。

3
我尝试在Visual Studio的Windows Form应用程序中将.accdb文件作为数据源连接,但它一直显示Microsoft.ACE.OLEDB.12.0提供程序未在本地计算机上注册。我已经安装了所有相关答案中标记为已接受/有效的推荐运行时:Microsoft Access database engine 2010 (x64)、Microsoft Access database engine 2016 (x64)、Microsoft Access Runtime 2010 (x64)、Microsoft Access Runtime 2013 (x64),但问题仍然存在。在Windows Forms项目中设置x86/x64平台也没有帮助。设置如下:Microsoft Windows 10 64位版本1809 build 17763.437,Microsoft Visual Studio 2015 14.0.25431.01更新3。错误截图加列出的OleDb枚举器

你看到这个问题了吗:https://dev59.com/jWw15IYBdhLWcg3wYasx - BankBuilder
是的,我尝试过安装Microsoft Access Database Engine 2010,但没有帮助。同时,将项目中的目标CPU从AnyCPU更改为x86和x64也没有帮助。 - michaltadeas
3个回答

17

这真是一个奇怪的平台混合。我已经安装了所有64位可用的必要组件,但连接时出现“本地计算机上未注册Microsoft.ACE.OLEDB.12.0提供程序”的错误。

当我尝试安装86位版本时,出现了以下提示:“您不能安装32位版本的Microsoft Access数据库引擎,因为当前已安装64位Office产品...”: 设置运行时错误

我按照 Merav Kochavi 的建议,使用 /passive 参数运行了32位版本的设置程序("AccessDatabaseEngine.exe /passive"),它没有出现错误消息,现在可以正常工作了!测试连接成功。

谢谢大家的帮助!


如果您正在使用微软办公套件,例如我的情况下是 Office 365,那么可能会因为版本不匹配而进入无限循环 截图 - 因为已经安装了 32 位版本而无法安装 64 位版本 > 安装 32 位版本 > 因为已经安装了 64 位版本而无法安装 32 位版本,如此往复。 - michaltadeas
帮了我很大的忙,没有人告诉我这个,每个人都说要安装 Microsoft.ACE.OLEDB.12.0 provider,但是经过8个小时的努力,终于解决了问题。谢谢! - Neeraj Dubey
在计算机升级到Office 365之后,使用/passive安装对我起作用了。 - Justin
这是解决我的方法。感谢转达信息。 - mariocatch
非常感谢您宝贵的建议,"AccessDatabaseEngine.exe /passive"。现在我也没问题了,谢谢您。 - undefined

1
如果有人有同样的问题,希望这可以帮到你。一个项目可以正常工作,但另一个却不行。我去了“添加/删除程序”,卸载了Microsoft Access数据库引擎2010,然后用MSI重新安装它(不是64位的)。以下是MSI的链接: https://www.microsoft.com/en-us/download/details.aspx?id=13255 最后,在VS中,仍然要确保你点击“项目”,选择“属性”,并勾选“首选32位”复选框。 祝好!

1
只要您勾选了“首选32位”选项,如果您已经运行了Microsoft Access数据库引擎20xx.exe文件来注册引擎,则可以解决此问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接