我想检查每个提供程序使用的文件版本,并在注册表中搜索,发现在干净的Windows 8安装中,安装了Office 2013后,两个提供程序都指向同一个程序集。
(C:\ Program Files \ Common Files \ microsoft shared \ OFFICE15 \ ACEOLEDB.DLL)
然后我下载并运行了Microsoft Access Database Engine Redistributable( http://www.microsoft.com/en-us/download/details.aspx?id=13255),然后将正确的12.0提供程序版本安装到C:\ Program Files \ Common Files \ microsoft shared \ OFFICE14 \ ACEOLEDB.DLL,应用程序就按预期工作了。
微软似乎已经包括了一个被标记为12.0的提供程序,但不再像12.0一样工作,这似乎很奇怪。
无论如何-希望这对某人免去了4-5小时的烦恼...
Craig
澄清一下OP所描述的行为:
使用Office 2013(ACE 15.0)后,Microsoft取消了对使用Jet 3.x及之前版本(即Access 97及更早版本)创建的mdb文件的支持。因此,我强烈推测引起问题的OP数据库是Access97-DB。Jet 4.0数据库(Access 2000,也是.mdb)仍然受到支持,并且不会产生任何错误。
Office 2013还将其更新的驱动程序注册为早期版本,这是微软故意尝试让许多程序和脚本正常工作,这些程序和脚本内部硬编码了提供程序名称。正如您在升级时所发现的那样,这只能使许多工作正常,而不是全部...
下载并安装http://www.microsoft.com/download/en/confirmation.aspx?id=23734
在VS中点击添加数据源,按照向导操作即可! :)