如何使用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] [用于Microsoft Access的ODBC驱动程序]不是有效的文件名。(-1044)(SQLDriverConnect)”)
转换为“文件名不可接受”。我找到了一个相关问题,但是答案对我不起作用(使用pyodbc连接到MS Access 2007(.accdb)数据库)。我根据以下输出使用32位python:
python -c 'import struct; print struct.calcsize("P") * 8'
和MS Access 32位。
[编辑]
好的,很抱歉回答我自己的问题,但是通过反复试验,我了解到,如果您使用第二个连接字符串,则需要指定绝对路径名:
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文件一起使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句