SSIS转换XLS到TXT时报DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER错误如何解决
问题排查与解决步骤
第一步:优先调整SSIS调试运行位数(90%以上场景可直接解决)
你已经成功安装32位Microsoft Access Database Engine 2010,报错核心原因是Visual Studio默认SSIS调试运行在64位模式,无法匹配32位驱动,按以下步骤修改:
- 右键解决方案资源管理器中的SSIS项目节点(不是顶层解决方案节点),选择「属性」
- 在弹出的属性页中定位到「配置属性」→「调试」选项卡
- 将「Run64BitRuntime」属性值改为
False - 保存配置后重新运行包测试
若修改后仍报错,按以下顺序排查
1. 校验Excel连接管理器配置
- 确认连接管理器中选择的Excel版本和待处理文件匹配:XLS格式选「Excel 97-2003」,XLSX等更高版本选对应高版本选项
- 连接字符串的Provider字段固定为
Microsoft.ACE.OLEDB.12.0,不要使用16.0版本,你当前没有对应16.0的有效驱动
2. 确认32位ACE驱动注册成功
- 按Win+R打开运行窗口,输入
C:\Windows\SysWOW64\odbcad32.exe打开32位ODBC数据源管理器 - 切换到「驱动程序」标签页,检查列表中是否存在
Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)项,存在则说明驱动安装注册正常
3. 解决Office即点即用版本的驱动冲突
你之前安装2016版驱动报错是因为32位Office 365为即点即用版本,自带的ACE组件和独立安装包有检测冲突,可通过静默安装参数绕过检测,无需卸载现有Office:
- 下载32位Microsoft Access Database Engine 2016安装包,存放在本地简单路径比如
C:\temp - 打开管理员权限的终端,CD到安装包所在目录
- 执行命令:
AccessDatabaseEngine.exe /quiet,等待安装完成 - 安装完成后再次调整SSIS运行时为32位,重新测试
兜底替代方案
如果始终无法解决ACE驱动的位数冲突问题,可以放弃官方Excel连接管理器,改用脚本任务集成NPOI/EPPlus等第三方.NET库读取Excel内容输出为TXT,完全不依赖系统ACE驱动,无位数兼容性问题。
内容的提问来源于stack exchange,提问作者Francesco Mantovani
相关产品推荐
相关产品推荐

