已安装Access数据库引擎仍提示Microsoft.ACE.OLEDB.16.0未注册如何解决
报错根因
The Microsoft.ACE.OLEDB.16.0 provider is not registered on the local machine报错的核心原因并非未安装对应版本的ACE驱动,而是运行导入操作的工具(SSIS/SSMS导入向导)的位数与已安装ACE驱动的位数不匹配:
- 主流版本SSMS默认是64位程序,默认调用64位驱动
- SSIS项目调试默认启用64位运行时,部署到32位环境时也会出现驱动识别问题
- 多数场景下默认安装的是32位版本ACE驱动,与64位工具不兼容
无需额外安装软件的可行配置方案
- 切换32位SSMS导入向导运行
若已安装的是32位ACE 16.0驱动,不要直接从SSMS界面启动导入向导,手动运行32位导入向导程序,路径为C:\Program Files (x86)\Microsoft SQL Server\<你的SQL Server版本号>\DTS\Binn\DTSWizard.exe,该程序会自动识别32位ACE驱动,可直接完成导入操作。 - 调整SSIS项目运行时位数
打开SSIS项目的属性页,进入「调试」分类,将Run64BitRuntime参数调整为和已安装ACE驱动位数一致:32位ACE设为False,64位ACE设为True,保存后重新运行包即可识别驱动。 - 采用xls格式过渡
若暂时无法调整驱动或配置,可要求数据提供方将文件另存为*.xls(Excel 97-2003)格式,导入时选择「Excel 97-2003」数据源类型,该类型依赖系统预装的Jet驱动,无需ACE驱动支持,无需调整现有配置即可正常导入。
需走公司标准安装流程的配置方案
如果上述方案都无法满足需求,可申请IT部门协助确认已安装ACE驱动的位数,补充安装和常用工具位数匹配的ACE 16.0驱动即可:
- 若常用64位SSIS/SSMS,申请安装64位版本Microsoft Access Database Engine 2016
- 若需要同时兼容32位和64位工具,安装时添加
/quiet参数静默安装,可避免同版本不同位数驱动的安装冲突 - 安装完成后无需额外配置,重启工具即可正常识别ACE 16.0驱动
内容的提问来源于stack exchange,提问作者user6635509
相关产品推荐
相关产品推荐

