【发布时间】:2014-08-14 18:40:17
【问题描述】:
我是 Python 新手,正在尝试使用库 pyodbc 连接到 MS Access 数据库。我有一个 32 位数据库和 32 位驱动程序。我一直在阅读,但无法理解看起来像一组简单的命令。
import pyodbc
DBfile = 'C:/Users/davisr/My Documents/TEMP/Comp_Model_Db_Testing.mdb'
conn = pyodbc.connect("Driver={Microsoft Access Driver(*.mdb, *.accdb)};DBQ=DBfile")
我收到的错误如下:
C:\Python27\python.exe C:/Users/davisr/PycharmProjects/File_Names/ex1.py
回溯(最近一次通话最后):
文件“C:/Users/davisr/PycharmProjects/File_Names/ex1.py”,第 6 行,在
conn = pyodbc.connect("Driver={Microsoft Access Driver(*.mdb, *.accdb)};DBQ=+DBfile")
pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] 找不到数据源名称
列表项且未指定默认驱动程序 (0) (SQLDriverConnect)')
感谢您的帮助。我相信这很简单。
尊敬的,
罗伯特·戴维斯
【问题讨论】:
-
好久没用了,但是我确定你的连接字符串的结尾是错误的。尝试用
"...DBQ=" + DBFile替换"...DBD=DBFile" -
尝试了上述并收到不同的错误:文件“C:/Users/davisr/PycharmProjects/File_Names/ex1.py”,第 6 行 conn = pyodbc.connect("Driver={Microsoft Access Driver( *.mdb, *.accdb)};DBQ="DBfile;)
-
我建议你
...;DBQ=" + DBFile)而不是...;DBQ="DBfile;) -
@user2320821 您遇到的问题归结为字符串格式。查看examples 并使用您的任何具体问题更新您的问题。
-
我听取了 Beargle 和 Serge Ballesta 的建议,以下终于奏效了:access_database_file = 'C:\\Users\\davisr\\My Documents\\TEMP\\Comp_Model_Db_Testing.mdb' ODBC_CONN_STR = ' DRIVER={Microsoft 访问驱动程序 (*.mdb, *.accdb)};DBQ=%s;' %access_database_file