【发布时间】:2020-06-16 12:59:29
【问题描述】:
我希望使用以下代码将 python 连接到 Access 数据库:
connStr = (
r"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};"
r"DBQ=O:\Architecture\DAART\Data Analytics Team\DAART.accdb;"
)
cnxn = pyodbc.connect(connStr)
cursor = cnxn.cursor()
df = pd.read_sql("select * from APMS SV-8 Report", cnxn)
对于最后一行代码,我收到以下错误消息:
DatabaseError: sql 'select * from APMS SV-8 Report' 执行失败: ('42000', '[42000] [Microsoft][ODBC Microsoft Access Driver] FROM 子句中的语法错误。(-3506) (SQLExecDirectW )')
【问题讨论】:
-
我认为问题是你的表名有空格。像这样写你的查询“从'APMS SV-8报告'中选择*”(在你的表名周围加上单引号)
-
@sTekin 不,您需要将名称括起来。虽然在 ANSI SQL 中,表名周围的单引号是有效的,但 Access 开箱即用并不完全兼容(AFAIK 甚至不支持 ANSI 兼容模式下的 ANSI 引号)。
-
@ErikA 谢谢,如果有一天我使用 Access,这将节省我的时间 :)
标签: python sql database ms-access connection