Microsoft.ACE.OLEDB.12.0提供商可以在Windows下不再能打开的.mdb 8 [英] Microsoft.ACE.OLEDB.12.0 Provider can no longer open .mdb under Windows 8

查看:563
本文介绍了Microsoft.ACE.OLEDB.12.0提供商可以在Windows下不再能打开的.mdb 8的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有使用Microsoft.ACE.OLEDB.12.0提供阅读上的Windows 7(64位)的MS Access数据库的64位应用程序,它工作正常(Office 2010的安装)。

I have an x64 application which uses Microsoft.ACE.OLEDB.12.0 provider to read an MS Access Database on Windows 7 (x64) and it works fine (Office 2010 installed).

Windows 8的下运行的Office 2013安装在相同的应用程序,失败,提示信息说,供应商无法打开previous版本。

The same application running under Windows 8 with Office 2013 installed, fails with a message saying that the provider cannot open previous versions.

在Windows 8和Office 2013安装的,也有Microsoft.ACE.OLEDB.15.0,但我有双重检查我的code和肯定,这是指定的连接字符串中的12.0。

Under Windows 8 with Office 2013 installed, there is also Microsoft.ACE.OLEDB.15.0, but I have double checked my code and certain that it is specifying the 12.0 in the connection string.

有没有这个供应商 - 或者不同的版本是有什么我已经错过了?

Are there different "versions" of this provider -or is there something I've missed?

我已经重新编译了一个测试程序的Windows 8下使用x86平台,并改变了供应商Microsoft.Jet.OLEDB.4.0,这一切再次工作。不幸的是,该模块是一个更大的生态系统,需要能够在x64来运行(特别是到Excel的插头)的一部分,访问数据库是由一套从供应商的网站,应用程序下载的,所以它是不切合实际的转换数据库或改变一切,以86。

I have recompiled a test program under Windows 8 for using x86 platform, and changed the provider to Microsoft.Jet.OLEDB.4.0 and it all works again. Unfortunately, the module is part of a bigger ecosystem that needs to be able to be run under x64 (specifically an plug in to excel), and the access database is downloaded by the suite from a supplier's web site by the application, so it is not practical to convert the database or change everything to x86.

在此先感谢。

推荐答案

我突然想到,检查正在使用的文件的版本,每一个供应商,并通过注册表狩猎,发现一个干净的Windows 8下安装,使用Office 2013安装,既提供指向同一个组件。

It occurred to me to check the versions of files being used for each provider, and hunting through the registry, found that under a clean Windows 8 install, with Office 2013 installed, both providers point to the same assembly.

(C:\ Program Files文件\ Common Files文件\微软共享\ OFFICE15 \ ACEOLEDB.DLL)

(C:\Program Files\Common Files\microsoft shared\OFFICE15\ACEOLEDB.DLL)

我然后下载并运行Microsoft Access数据库引擎可再发行组件(<一href="http://www.microsoft.com/en-us/download/details.aspx?id=13255">http://www.microsoft.com/en-us/download/details.aspx?id=13255)然后安装了12.0提供商的正确版本为C:\ Program Files文件\ Common Files文件\微软共享\ OFFICE14 \ ACEOLEDB.DLL和应用程序本身表现如预期

I then downloaded and ran the Microsoft Access Database Engine Redistributable (http://www.microsoft.com/en-us/download/details.aspx?id=13255) which then installed the proper version of the 12.0 provider into C:\Program Files\Common Files\microsoft shared\OFFICE14\ACEOLEDB.DLL and the application is behaving itself as expected.

这似乎奇怪的是,MS已经包括了供应商品牌为12.0并不像12.0更多一点。

It would seem strange that MS have included a provider branded as 12.0 that doesn't behave like 12.0 any more.

反正 - 希望帮助4-5个小时的人的头发拔...

Anyway - hope that helps someone from 4-5 hours of hair pulling...

克雷格

这篇关于Microsoft.ACE.OLEDB.12.0提供商可以在Windows下不再能打开的.mdb 8的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆