来源: 导入零件信息发生错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序_韩某的博客-CSDN博客
问题描述:
开发导入excel文件时报错“导入零件信息发生错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”
电脑环境:系统64位,但pc安装的是office2007,32位的
网上查阅相关资料,发现解决方法基本上都是安装“Microsoft Access Driver”数据库引擎,
微软的官方链接“Download Microsoft Access 2010 数据库引擎可再发行程序包”,
点进有两个安装文件
因为电脑是64位的,所以先下载安装的x64的,结果并没有解决问题。
然后又试了试32位的,但仍然不行。
然后参考这个问题的百度知道回答,在IIS管理器中设置启用32位应用程序,单还是不行。
此时已经一脸懵逼了,搞不懂这个问题,然后继续尝试。
这个匿名用户的回答虽然图片看不清,但是赞却很多,再看看评论,发现很多网友据此解决了问题,顺着一个评论的思路进行如下设置
解决方案右键属性
点击属性,平台默认是“Any CPU”
点击“配置管理器”,进入配置管理页面,此时“活动解决平台”也是“Any CPU”,下拉此框,选择新建
新建x86,点击确定,会发现配置管理器中“活动解决方案平台”变为了x86
属性页平台处也变为x86,点击确定
然后就可以F5重新调试项目了,发现导入成功,问题解决了。
笔记本装的是windows 7旗舰版64位系统,使用的是MS Office 2007(Microsoft.ACE.OLEDB.12.0,32位程序),开发用的是Visual Studio 2010,我的程序要进行Excel的读写和导出,运行时报“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。”网上搜了一下,终于把问题解决了,现总结如下:
步骤一:
先检查安装的MS office程序里是否包含Acess,因为读写Excel需用到Acess数据库引擎。若没有,则下载MS Access 2007数据库引擎并安装,下载地址: http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe
步骤二:
如果已安装Acess,出现这个问题的原因是:64位的PC系统上安装了Office的32位版本,而Visual Studio 2010则是64位的,默认生成的是64位程序,这样就造成了程序的不兼容,导致报错。解决方法:在Visual Studio的项目属性里,将生成(build)的目标平台(platform target)由Any CPU改为x86,这样生成(build)出来的就是32位的程序。