常规办法就是64位或32位匹配,如果解决不了,往下看。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓解决方案↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
解压AccessDatabaseEngine_X64.exe,用orca编辑器打开AceRedist.msi文件,
选择LaunchCondition项,选择BLOCKINSTALLATION行删除,然后保存,运行AceRedist.msi文件,即可正常安装access的64位odbc驱动。
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑解决方案↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
全新上位机部署环境时需要准备的东西:
ODBC
VC_redist.x86.exe
VC_redist.x64.exe
accessdatabaseengine.exe
accessdatabaseengine_X64.exe
Orca.Msi
Orca下载地址:
How to Download ORCA MSI Editor Standalone Version - Guiding Tech
说一下具体情况:
需求:
Qt widget C++写了一个上位机软件,读取本地Access2007数据库内容。(Qt Quick--qml不能对接数据库)
环境分析:
win7-64位操作系统。
Access2007只有32位的,没有64位的。
ODBC安装后在启动菜单中看到的是64位的,32位的在SysWOW64中,找到并创建一个快捷方式到桌面。
VC_redist.x86.exe,在新电脑环境中,安装运行软件有时会报错,或明确提示提示缺少VCruntime140.dll时,装上86的运行时试下,不行再装64的。我这里只用到86的。
读取数据库需要经过ODBC,安装对应64或32的对应数据库的驱动,依赖对应驱动创建DSN指向数据库DB文件,才能连接数据库;一般情况下,64或32匹配好就可以了。但现在这个情况由于Access2007的存在,只能用32位ODBC创建DSN,但操作系统是win7-64位,然后就出现“体系结构不匹配”的问题了。解决方案就是把64位的驱动也装上(我也想知道为什么,问题就在ODBC内部)。然后又出现问题了,安装64位驱动时会提示你,由于本地已经安装了32位的Access,你不可以再安装64位的驱动。
这就让人很绝望。
遇到同样问题的点个赞,我看看有多少难兄难弟👀
解决方案来自一位博客园-麒麟正青春的博主,原文链接
64位系统下access的64位odbc驱动 - 麒麟正青春 - 博客园 (cnblogs.com)
防止链接失效,自己记录,改了名字也方便大家查阅。我当时翻遍了百度都没找到这个文章,还是网友发我的。