Python Access 数据库查询给 "Data Source Name Not Found"

标签 python ms-access pyodbc

每当我尝试使用 Python 脚本查询文件时,我都会收到以下错误

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

Image of Error Message

我的代码如下:

conn = pyodbc.connect ("DRIVER={ODBCDataFile [Microsoft Access Driver 
(*.mdb, *.accdb)]};DBQ=C:\Users\jmtr\Documents\IRST_old.accdb;")

cur = conn.cursor()
cur.execute("SELECT Name, CAI, Email, SSPLocation, BUNUM from Tbl_SSP")

我的 Access 数据库是“Microsoft Access 2016 32 位”。我也在使用“32 位”python 2.7.13 和 32 位 PYODBC。而且,我在 ODBC 数据源管理器中设置了 32 位驱动程序:

Image of ODBC 32-bit

我不明白为什么我仍然收到此错误消息?

最佳答案

连接字符串不正确。没有带方括号 [...]ODBCDataFile 关键字。只需删除它们并将 DRIVER 分配给已安装的 ODBC 驱动程序,如屏幕截图所示:

conn = pyodbc.connect("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};" + \
                      "DBQ=C:\\Users\\jmtr\\Documents\\IRST_old.accdb;")

关于Python Access 数据库查询给 "Data Source Name Not Found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49117345/

相关文章:

python - 检查下一行然后实现该行应该去哪里

python - 返回 Ajax 的多个项目

python - python 3.6中的编码解码字符串不起作用?

python - pyodbc 将 SQL Server DATE 字段作为字符串返回

python - pyodbc:查询结果到 CSV?

python - pyodbc 中的清理查询仅返回字段名称

python - pandas:使用 > 1 ndim 分类构造数据框

mysql - 使用VBA,查找安装在Windows中的MySQL ODBC驱动的版本

excel - 从 Excel VBA - 检查 Access 表是否存在/如果不存在,则创建/复制

sql - 不一致的数据库记录返回 - 将 Access 数据库迁移到 SQL