如何使用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 for Microsoft Access]KeinzulässigerDateniname。( - 1044)(SQLDriverConnect)')
转换为“文件名不可接受”。 我找到了一个相关的问题,但答案对我不起作用(Connecting to MS Access 2007 (.accdb) database using pyodbc)。我根据输出使用32位python:
python -c 'import struct; print struct.calcsize("P") * 8'
和MS Access 32位。
[编辑]
答案 0 :(得分:7)
好的,很抱歉回答我自己的问题,但通过玩游戏,我了解到如果使用第二个连接字符串,则需要指定绝对路径名:
ACCESS_DATABASE_FILE = 'C:\\path\\to\\PSA_TEST.accdb'
ODBC_CONN_STR = 'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=%s;' % ACCESS_DATABASE_FILE
然后它甚至可以与accdb文件一起使用,也可以按预期使用mdb文件。