Access 数据库引擎位数不匹配报错怎么修
装 64 位 Office 后 Access 报“找不到 jet40.dll / dao.dll”、ODBC 连接位数不符的成因:32 位驱动与 64 位宿主不能混用;统一位数是唯一的处理方向。
简短答案
Access(及其 OLE DB / ODBC 驱动)是宿主程序,位数必须与整个 Office 套件一致:装 64 位 Office 就全链路 64 位驱动,装 32 位就全 32 位。报错”找不到 jet40.dll”多为 64 位 Access 去调 32 位引擎组件,无解法是换位数,不是补 dll。
现象对照
| 报错 | 位数场景 | 处理 |
|---|---|---|
| 找不到 jet40.dll / dao360.dll | 64 位宿主找 32 位引擎 | 改 32 位 Access 或全 64 位链路 |
| ODBC 连接被拒 | DSN 是 32 位建的,宿主 64 位 | 重建对应位数的 DSN |
| 部分表能开部分不能 | 同机混装 32 / 64 位 | 卸载一个位数 |
处理步骤
- 先查 Office 位数:任一 Office 程序”文件 → 账户 → 关于”看架构。
- 查驱动位数:
C:\Windows\SysWOW64下是 32 位,System32下是 64 位;对应数据库驱动(如 SQL Server 驱动装 SQL Server 2019 Developer 条目 时也有 32 / 64 两位安装包)确认与宿主一致。 - 处理方向二选一:
- 全 64 位(推荐,对照 2021 条目 的位数选择):卸载 32 位 Access / 驱动,装 64 位版本,重建 64 位 DSN;
- 全 32 位:卸载 64 位 Office,装 32 位版本,驱动全 32 位。
- 重建 DSN:管理员 ODBC 数据源(64 位)/ 用户 DSN(32 位)入口不同,位数装完后重新建。
- 对照 2019 条目,各代行为一致;改完位数做激活验证,需要时用 AAct 工具。
不要试图”两边都装”——32 与 64 位 Access 同机共存是位数不匹配报错的最大来源,必须二选一。
操作小结
- 查 Office 位数。
- 查驱动位数(SysWOW64 vs System32)。
- 全链路统一到一个位数,重建 DSN。
- 二选一,别混装。