pyodbc.InterfaceError: (‘IM002‘, ‘[IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 (0) (SQLDriv

pyodbc.InterfaceError: (‘IM002’, ‘[IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 (0) (SQLDriverConnect)’)

1.问题描述

用pyodbc链接access数据库时:

import os
import pyodbc
import win32com.client
import pandas as pd

def find_mdb_files(directory):
    mdb_files = []
    for root, dirs, files in os.walk(directory):
        for file_name in files:
            if file_name.endswith('.mdb'):
                mdb_files.append(os.path.join(root, file_name))
    return mdb_files

def connect_to_mdb(mdb_path):
    connection_string = (
        r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
        r'DBQ=' + mdb_path + ';'
    )
    conn = pyodbc.connect(connection_string)
    return conn

# 运行这句代码时报错
conn = connect_to_mdb("mdb文件所在的路径")

出现下面的报错

pyodbc.InterfaceError: (‘IM002’, ‘[IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 (0) (SQLDriverConnect)’)

2.问题分析

在运行这句代码时(conn = connect_to_mdb(“mdb文件所在的路径”)),调用了connect_to_mdb函数,在这个函数中我们声明要用这个驱动【Microsoft Access Driver (*.mdb, *.accdb)】打开access数据库,如果电脑中没有这个驱动,则会提示上面提到的错误。找到问题所在之后,就要判断电脑中是否有这个驱动了。

判断电脑中是否有这个驱动的方法
控制面板→管理工具→ODBC数据源(64位)→驱动程序
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
缺少这个驱动的解决方法

第一步:如果Python(参考链接)或者系统是64位的(参考链接),那么要确保安装的access也是64位的,不然找不到这个驱动。
在这里插入图片描述
第二步:如果第一步没有问题的话,需要从微软上下载对应版本的Microsoft Access Database Engine

相关的文件放到百度网盘了
链接:https://pan.baidu.com/s/1QGHwMXlUb6CkTcResRjb5g?pwd=dggu
提取码:dggu

参考链接:
https://blog.csdn.net/qq_34391511/article/details/107644722
https://blog.csdn.net/JiuShu110/article/details/136339272
https://blog.csdn.net/Mr_Blackk/article/details/120907783

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值