Windows 10 无法识别“Microsoft.ACE.OLEDB.12.0”

Posted

技术标签:

【中文标题】Windows 10 无法识别“Microsoft.ACE.OLEDB.12.0”【英文标题】:"Microsoft.ACE.OLEDB.12.0” not recognized in Windows 10 【发布时间】:2016-08-18 14:04:40 【问题描述】:

背景

我正在开发一个连接到 Microsoft Access 数据库的 Windows 窗体应用程序。

这是我在开发中使用的示例代码:

try

    string AccessFilePath = @"\.myDataBase.mdb"; // Path of the Access database.
    string sqlStatement = "SELECT * FROM myTable WHERE IdTable = 5;";
    string connstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + AccessFilePath;
    OleDbConnection conn = new OleDbConnection(connstr);
    OleDbCommand cmd = new OleDbCommand();
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = sqlStatement;
    cmd.Connection = conn;
    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();

catch (Exception ex)

    MessageBox("Error: " + ex.Message);

以下列表描述了我的开发环境:

Visual Studio 2015 社区 在 Framework .NET 4.0 中创建的解决方案 操作系统:Windows 10 Pro - 64 位。 此开发必须在 Windows XP、Windows 7 及更高版本上运行。

我已经安装了:

2007 Office System Driver: Data Connectivity Components Microsoft .NET 4.0 (在 Windows XP 和其他需要它的计算机上)

问题

在我的 PC 装有 Windows 10 Pro OS 中,我在 C:/ 硬盘中搜索,发现 ACEOLEDB.DLL已安装在以下位置:

这是安装数据连接组件之前:

- C:\Program Files (x86)\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared\OFFICE16
- C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15
- C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14

点击放大图片:

当我在我的 PC 中安装数据连接组件时,ACEOLEDB.DLL 位于:

- C:\Program Files (x86)\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared

我真的不知道为什么即使在安装数据连接组件之后我仍然收到此错误:

“'Microsoft.ACE.OLEDB.12.0' 提供程序未在本地计算机上注册”


问题

操作系统如何处理数据连接组件? 如果操作系统安装了数据连接组件,如何正确验证?

【问题讨论】:

平台目标:x86? @LarsTech 在任何 CPU @LarsTech 我不能。唯一可用的选项是任何 CPU 您找对地方了吗?属性 -> 构建 -> 平台目标 @LarsTech 是的,这是screenshot 【参考方案1】:

按照用户 LarsTech 在其comment 中的建议,将 Platform Target 更改为 x86 后,在最终用户计算机中具有 Windows 7 操作系统且没有 Office套件安装。它工作正常。

虽然我认为这种改变就足够了,但由于某种未知的原因,在我的 PC 中,这不是。

所以,我不得不再次研究,我发现了一个类似的问题here。

解决方法在这种特殊情况下是安装:

Microsoft Access 2010 Runtime

就我而言,创建了以下 ACEOLEDB.DLL 条目:

- C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE12
- C:\Windows\Installer\$PatchCache$\Managed\00004109C10000000000000000F01FEC\14.0.4763

我认为最后一个条目是由 2010 Runtime 安装创建的。

【讨论】:

以上是关于Windows 10 无法识别“Microsoft.ACE.OLEDB.12.0”的主要内容,如果未能解决你的问题,请参考以下文章

windows 10 中用mklink 无法识别

win10更新失败怎么办?

无法在 Windows 10 预览版的 Microsoft Edge (Project Spartan) 中打开 localhost

无法在 Windows 10 预览版的 Microsoft Edge (Project Spartan) 中打开 localhost

如何在 Windows 10 UWP 中正确实现语音识别

在 Windows 10 上无法识别 Conda 命令