Microsoft ACE OLEDB 12.0 未在本地计算机上注册 - 但它是

Posted

技术标签:

【中文标题】Microsoft ACE OLEDB 12.0 未在本地计算机上注册 - 但它是【英文标题】:Microsoft ACE OLE DB 12.0 is not registered on the local machine - But it is 【发布时间】:2016-12-13 11:31:59 【问题描述】:

我知道这是一个常见的错误消息,修复通常是安装this download,但是,我的最终用户已经这样做了。

我有 2 个该程序的最终用户,除了我自己。我有一台 64 位 Windows 10 电脑,第一个最终用户也有一台 64 位 Windows 10 电脑。这个用户遇到了没有安装 Ole DB 12.0 的问题,所以我把那个链接发给了他们,然后 wham bam,谢谢女士,问题已经解决了。

然而第二个最终用户正在运行 64 位 Windows 7 PC - 我给他发送了完全相同的链接,他已经安装了它(或者他是这么说的) ,但错误仍在发生...它是否与 Windows 7 不兼容,尽管下载下的详细信息说它是?

还有其他可能导致此问题的原因吗?

程序正在尝试从 Excel 导入 Access,使用以下连接路径;

If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
    txtFile.Text = ofd.FileName

    fi = New FileInfo(ofd.FileName)
    fileName = ofd.FileName

    excel = fi.FullName

    eCon = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & excel & ";Extended Properties=Excel 10.0;")
    eCon.Open()

【问题讨论】:

嗨大卫....而不是猜测为什么您不能使用 TeamViewer 之类的工具访问有问题的最终用户计算机并仔细检查它是否安装了连接器?...一旦您解决了这个问题问题,如果你用你的发现建立一个文档应该会很棒 @Hackerman 建立一个文档? SO,在哪里? 不,我的意思是为你,或任何需要在未来维护软件的人......顺便说一句,TeamViewer 是一个可用的选项吗? @Hackerman 哦,我明白了。最后我不需要,他们确实安装了它,但他们缺少 2007 Access 引擎 【参考方案1】:

原因是您的应用程序是针对 x86 CPU 而不是 x64 编译的。因此,您的应用程序正在寻找 32 位版本的驱动程序,而不是安装的 x64 位版本。当您安装 32 位时,您的应用程序可以正常工作。我一直都知道。

【讨论】:

对,好吧,我不知道。不是100%确定他安装的版本是不是32位,但已经解决了,很有可能就是这个原因。【参考方案2】:

答案很奇怪。

尽管用户已正确安装引擎,但它仍然无法正常工作。我在Control Panel 中查看了他们的Programs and Features,唯一的区别是他们缺少Access Engine 的2007 版本。

安装它,修复它。不知道为什么,但万一这发生在其他人身上,值得检查!

【讨论】:

以上是关于Microsoft ACE OLEDB 12.0 未在本地计算机上注册 - 但它是的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft.ACE.OLEDB.12.0 提供程序未注册

Microsoft.Jet.OLEDB.4.0 与 Microsoft.ACE.OLEDB.12.0,我应该使用哪个?

Microsoft.ACE.OLEDB.12.0 未在 x86 上注册

Microsoft.ACE.OLEDB.12.0 尚未注册”错误

microsoft.ace.oledb.12.0 提供程序未注册

C#:使用 Microsoft.ACE.OLEDB.12.0 连接到 dbf 文件