64位C++ Builder CE11.3连接64位MS Access驱动问题求助
问题背景
使用64位Embarcadero C++ Builder CE 11.3开发程序,连接64位MS Access 2019数据库(已安装64位Office Professional Plus 2019点击运行版):
- 手动使用连接字符串:
Provider=Microsoft.ACE.OLEDB.16.0;Data Source="C:\CAT\Test\Database2.accdb";Persist Security Info=False;
报错:"provider cannot found it may not be installed properly" - 连接向导中无Microsoft.ACE.OLEDB.16.0选项,但ODBC数据源管理器存在对应驱动
已尝试操作均无效:
- 卸载/重装accessdatabasengine_X64
- 卸载Office后重装accessdatabasengine_X64
- 安装MSAccess AccessRuntime_x64_en-us
- 切换Microsoft.ACE.OLEDB版本(12.0、15.0)
确认Access为64位,C++ Builder目标平台设为Windows 64位,仍无法找到64位驱动。
解决步骤
1. 强制静默安装ACE驱动
运行accessdatabasengine_X64安装包时,添加参数跳过Office版本检测,强制安装64位驱动:accessdatabasengine_X64.exe /passive /quiet
2. 手动注册ACE驱动
以管理员身份打开64位命令提示符,执行注册命令(路径对应Office 2019的OFFICE16目录,若为其他版本请调整路径):regsvr32 "C:\Program Files\Common Files\Microsoft Shared\OFFICE16\ACEOLEDB.DLL"
3. 验证驱动注册状态
打开64位注册表编辑器(regedit),检查以下路径是否存在:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Access Connectivity Engine\Engines\ACE
存在则说明驱动注册正常;不存在则需重新注册或检查安装权限。
4. 切换为ODBC连接方式
利用已存在的ODBC驱动,使用ODBC连接字符串:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\CAT\Test\Database2.accdb;
在C++ Builder中使用TODBCConnection组件配置连接。
5. 使用FireDAC组件替代ADO
FireDAC对Access兼容性更好,配置步骤:
- 拖放
TFDConnection到窗体,双击打开连接编辑器 - 选择Driver ID为
MSAcc,配置数据库文件路径后测试连接
内容的提问来源于stack exchange,提问作者Chris Tighe

