fjptwwm2
2019-06-22 16:07
采纳率: 50%
浏览 1.0k

access2017 winform无法连接32位的access2016(Office365 MSO 16.0.11629.20238)如何解决?

首先要说明一下,本人是一名编程爱好者,使用visio studio2017为单位开发软件的,我电脑的操作系统是64位的,用的office软件套装是office 2016。
本人去年开发了一套是开发为asp.net的动态网络,用access2016(Office365 MSO 16.0.11629.20238)(32位)作为动态网站的数据库,毕竟是单位内网使用,对数据库的要求不高。当时开发时就已经报错,并提示了问题上的错误,但本人通过百度找到了解决方案,就是给电脑上安装了AccessDatabaseEngine,并配置好IIS后就可以正常访问了。
今天本人又开发了winform的软件,也是使用access2016(Office365 MSO 16.0.11629.20238)(32位)作为winform的数据库,这次又报错了提示“未在本地计算机上注册‘Microsoft.ACE.OLEDB.12.0’提供程序”,于是本人再次在互联网上搜索,均是给出了asp.net的解决方法(下载并安装AccessDatabaseEngine,但是安装时提示已经安装过了只能进行修复,于是我就没有选择修复),没有winform的解决方案。于是本人想通过安装AccessDatabaseEngine_64.exe软件想解决这个问题,结果系统却报错说我已经安装了office的32位的产品,不能安装AccessDatabaseEngine_64.exe软件。
现在我该怎么办,我很绝望啊!!!请知道真相的大神帮忙解决这个问题,谢谢了!
底下是本人程序中连接access 2016数据库的代码,代码肯定是没问题的,因为在同一台电脑中用asp.net中做连接时都可以正常访问。

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E://test.accdb;
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • fjptwwm2 2019-06-30 15:58
    已采纳

    经过多天的探索,我终于发现了解答的办法,那就是在调试的时候,把anyCPU修改为x86然后就能正常运行了。(选择配置管理器,然后平台那有个新建的按钮,选择新建x86模式即可)
    但是又有一个奇怪的现象,那就是用x86模式进行编译运行时某些第三方的dll就不能用了,真奇怪。因为我之前在vs2008(32位系统)上可以正常运行,并且是在vs2017的x64模式下也没有报错,但就是在x86模式下却不行!然后我使用项目-管理NuGet重新下载这些dll后才正常了。

    点赞 打赏 评论
  • dabocaiqq 2019-06-22 22:35

    Microsoft.ACE.OLEDB.12.0支能支持2007
    要用16.0

    点赞 打赏 评论
  • 部落太阳 2020-07-03 16:40

    客户端系统64位,安装的是32位office 套装,程序要求编译any cpu ,如何处理?

    点赞 打赏 评论

相关推荐 更多相似问题