You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级至O365后pyodbc连接MS Access报IM002错误求助

问题描述

将MS Access 2010桌面版升级至O365后,原有Python连接Access的代码触发错误:

pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

使用的代码:

conn = pyodbc.connect(
    r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};'
    r'DBQ=C:\Data\Analytics\Database\VA VULN Cleanup.accdb;')

已完成排查:卸载重装32/64位驱动、确认驱动名称无拼写错误、参考过同类问题的解决方案,但问题仍未解决。

可行解决建议
  • 严格匹配Python与驱动的位数
    这是核心排查点:若Python为32位,必须搭配32位Access ODBC驱动;Python为64位则用64位驱动。可在Python中执行import sys; print(sys.maxsize)判断位数——输出小于2147483647为32位,大于则为64位。
    注意O365默认可能安装64位Access组件,若使用32位Python,需手动安装对应版本的32位Access Runtime,安装时明确选择“32位版本”。

  • 更新驱动名称为O365适配版
    部分O365环境下,驱动名称会扩展为{Microsoft Access Driver (*.mdb, *.accdb, *.accde, *.accdr)},尝试修改连接字符串:

    conn = pyodbc.connect(
        r'Driver={Microsoft Access Driver (*.mdb, *.accdb, *.accde, *.accdr)};'
        r'DBQ=C:\Data\Analytics\Database\VA VULN Cleanup.accdb;')
    

    也可直接查看系统中已安装的驱动名称:

    • 32位驱动:打开C:\Windows\SysWOW64\odbcad32.exe,在“驱动程序”标签页复制准确名称
    • 64位驱动:打开C:\Windows\System32\odbcad32.exe,查看对应驱动名称
  • 解决O365 Click-to-Run与驱动的冲突
    O365的Click-to-Run版本可能和独立ODBC驱动冲突,可按以下步骤处理:

    1. 卸载当前安装的Access ODBC驱动
    2. 下载对应位数的“Microsoft Access Database Engine 2016 Redistributable”
    3. 若安装时提示“无法安装64位版本,因已安装32位Office产品”,用命令行静默安装:
      • 64位驱动:AccessDatabaseEngine_X64.exe /quiet
      • 32位驱动:AccessDatabaseEngine.exe /quiet
  • 验证数据库文件的访问权限
    确保Python进程拥有读取目标数据库文件的权限,可先将文件复制到桌面等权限开放的路径,再测试连接是否正常。

  • 改用DSN连接方式
    手动创建ODBC数据源(DSN)替代直接驱动连接:

    1. 打开对应位数的odbcad32.exe,进入“用户DSN”或“系统DSN”标签页
    2. 点击“添加”,选择对应Access驱动,设置数据源名称并指向目标数据库
    3. 修改Python代码为:
      conn = pyodbc.connect('DSN=你的DSN名称;')
      

内容的提问来源于stack exchange,提问作者Starr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 00:03:20