Microsoft.ACE.OLEDB.12.0 Provider 无法再在 Windows 8 下打开 .mdb [英] Microsoft.ACE.OLEDB.12.0 Provider can no longer open .mdb under Windows 8

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

问题描述

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).

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

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?

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.

Thanks in advance.

解决方案

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 FilesCommon Filesmicrosoft sharedOFFICE15ACEOLEDB.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 FilesCommon Filesmicrosoft sharedOFFICE14ACEOLEDB.DLL and the application is behaving itself as expected.

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

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

Craig

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

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