Office 365环境下ODBC Driver Manager数据源名称错误求助(Excel 2010宏迁移问题)
解决Office 365中ODBC Driver Manager“数据源名称已找到”错误的方案
看起来你在将Excel 2010的宏迁移到Office 365 64位环境时遇到了ODBC文本驱动的兼容性问题,结合你的代码和描述,我整理了几个针对性的解决方案:
1. 修正驱动名称的拼写错误
你的示例代码里驱动名称有明显拼写错误:Microsoft Text Drvier 应该是 Microsoft Text Driver(少了一个字母'v')!这大概率是触发错误的核心原因,同时调整Extensions参数的错误值(asxc应为asc),修正后的代码如下:
ConnCSV.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" & path & ";Extensions=asc,csv,tab,txt;HDR=NO;Persist Security Info=False"
2. 确保Office与ODBC驱动的位数完全匹配
Office 365默认是64位版本,即使你安装了64位ODBC组件,也要做以下检查:
- 打开64位ODBC数据源管理器:运行
C:\Windows\System32\odbcad32.exe,确认在「驱动程序」标签下能看到Microsoft Text Driver (*.txt; *.csv) - 如果你的宏是基于32位Excel 2010开发的,现在运行在64位Office中,可临时调整宏的运行环境:
- 打开Excel,依次点击「文件」→「选项」→「信任中心」→「信任中心设置」→「宏设置」,临时勾选「启用所有宏」用于测试(测试完成后记得改回安全设置)
- 若必须依赖旧的32位驱动,可以考虑将Office 365切换为32位版本,但更推荐适配64位方案
3. 改用ACE驱动替代旧文本驱动
Microsoft Text Driver属于老旧的Jet驱动,在64位Office环境中支持有限,推荐使用更稳定的ACE驱动(Microsoft Access Database Engine):
- 下载并安装对应位数的Microsoft Access Database Engine 2016 Redistributable(64位版本)
- 修改宏的连接字符串为ACE驱动格式,无需指定ODBC驱动名称,兼容性更好:
ConnCSV.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & path & ";Extended Properties=""text;HDR=NO;FMT=Delimited;"";"
4. 验证文件路径的有效性
确保path变量指向的文件夹路径正确,若路径包含空格或特殊字符,需要用引号包裹:
Dim path As String path = "C:\My CSV Files" ' 包含空格的路径 ' 用Chr(34)添加引号包裹路径 ConnCSV.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" & Chr(34) & path & Chr(34) & ";Extensions=asc,csv,tab,txt;HDR=NO;Persist Security Info=False"
内容的提问来源于stack exchange,提问作者A1N1
相关产品推荐
相关产品推荐

