如何使用 pyodbc 访问我的 Microsoft Access 2010 数据库 (accdb)?之前,我使用了一个 mdb 数据库,它在连接字符串为:
ODBC_CONN_STR = 'DRIVER={Microsoft Access Driver (*.mdb)};DBQ=%s;' % ACCESS_DATABASE_FILE
现在我使用:
import pyodbc
ACCESS_DATABASE_FILE = "PSA_TEST.accdb"
ODBC_CONN_STR = 'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=%s;' % ACCESS_DATABASE_FILE
conn = pyodbc.connect(ODBC_CONN_STR)
我得到的错误是: pyodbc.Error: ('HY000', '[HY000] [Microsoft][ODBC-Treiber für Microsoft Access] Kein zulässiger Dateiname. (-1044) (SQLDriverConnect)')
翻译为“文件名不可接受”。我找到了一个相关的问题,但答案对我不起作用(使用 pyodbc 连接到 MS Access 2007 (.accdb) 数据库)。我根据以下输出使用 32 位 python:
python -c 'import struct; print struct.calcsize("P") * 8'
和 MS Access 32 位。
[编辑]
- 以防万一,我检查os.path.isfile(ACCESS_DATABASE_FILE)文件是否确实存在
- 文件可以用 Access 打开
- 使用新的连接字符串打开以前的 mdb 文件会给出相同的错误消息,这不是预期的行为