【问题标题】:Reading MS Access with Python 3.7使用 Python 3.7 阅读 MS Access
【发布时间】:2023-04-03 15:45:01
【问题描述】:

我已经在线阅读了一百页关于如何将遗留的 MS Access 数据库连接到 Python,但一切似乎都过时了。我正在使用带有 SQLAlchemy 和 PyODBC 的 Python 3.7 64 位,但 SQLAlchemy 不再支持 MS Access,我无法让任何代码工作。最近有人用现代版的 Python 连接到 Access 吗?这是我的代码不起作用。

import pyodbc
connStr = (
    r"DRIVER={Microsoft Access Driver (*.accdb)}; DBQ=E:\db\Records.accdb; Uid=Admin; Pwd=;"
    )
conn = pyodbc.connect(connStr)
cursor = conn.cursor()
cursor.execute('select * from Students')
for row in cursor.fetchall():
    print(row)

错误:

Traceback(最近一次调用最后一次):
文件“G:/Projects/AccessTest/accessdb.py”,第 7 行,在
conn = pyodbc.connect(connStr)
pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

【问题讨论】:

  • here。没有名为 Microsoft Access Driver (*.accdb) 的 Access ODBC 驱动程序。检查pyodbc.drivers() 返回的列表以查看Microsoft Access Driver (*.mdb, *.accdb) 是否可用于您的Python 应用程序,如果没有,则安装它。
  • 该死,我只有 MS SQL 驱动程序,这是我在 Windows 中为 64 位驱动程序访问 ODBC GUI 时看到的,我必须访问 ODBCAD32.exe查看 32 位驱动程序,这就是我拥有 MS Access 的全部内容。有没有办法切换 PyODBC 以使用其他驱动程序?

标签:
python-3.x
ms-access
sqlalchemy
pyodbc