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

求助:Python导入Excel至MS Access时遇ODBC驱动IM002错误

解决方法

错误原因分析

这个InterfaceError的核心问题是ODBC连接字符串未正确指定Access驱动,或驱动与Python版本不匹配,导致系统找不到对应的数据源驱动程序。


具体修复步骤

1. 确认ODBC驱动与Python版本匹配

  • 32位Python必须搭配32位Access ODBC驱动,64位Python搭配64位驱动,二者位数不兼容会直接触发找不到驱动的错误。
    • 验证Python位数:执行python -c "import sys; print(sys.maxsize > 2**32)",返回True为64位,False为32位。
  • 针对.mdb格式(Access 2003及更早版本),驱动名称为Microsoft Access Driver (*.mdb);若后续使用.accdb格式,驱动名称为Microsoft Access Driver (*.mdb, *.accdb)。

2. 修正数据库连接与数据导入代码

使用pyodbc构建正确的连接字符串,示例代码如下:

import pyodbc
import pandas as pd

# 读取Excel指定工作表数据
df1 = pd.read_excel('123.xlsx', sheet_name='T_PBAR')

# 构建Access数据库连接字符串(替换为你的mdb文件绝对路径)
conn_str = (
    r'DRIVER={Microsoft Access Driver (*.mdb)};'
    r'DBQ=D:\Data\MODEL.mdb;'  # 这里改成实际的MODEL.mdb文件路径
)

# 建立连接并导入数据
conn = pyodbc.connect(conn_str)
df1.to_sql(
    name='T_PBAR',  # Access中要创建/写入的表名
    con=conn,
    if_exists='replace',  # 可选:replace覆盖现有表,append追加数据,fail表存在则报错
    index=False  # 不要将DataFrame的索引写入数据库
)

# 提交并关闭连接
conn.commit()
conn.close()

3. 常见坑点排查

  • 驱动名称必须完全匹配:不要写错驱动名称,比如漏写括号内的(*.mdb)。
  • 避免使用相对路径:尽量用绝对路径指定.mdb文件位置,防止因工作目录问题导致文件找不到。
  • 权限问题:确保Python进程有读取.mdb文件的权限,不要放在受系统保护的目录(如C盘根目录、Program Files)下。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 05:16:00