MS Access 与 IPython 与 pyodbc 之间的连接错误

Connection Error between MS Access and IPython with pyodbc

当我 运行 我的脚本看到下面时,我得到了以下错误。

import pyodbc

cnxn = pyodbc.connect("DRIVER={Microsoft Access Driver (*.mdb)};UID=admin;UserCommitSync=Yes#;Threads=3;SafeTransactions=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=2048;FIL={MS Access};DriverId=25;DefaultDir=C:\Users\XXX;DBQ=C:\Users\XXX\Database.mdb")

cursor = cnxn.cursor()

cursor.execute("SELECT Monat FROM TW-DS")

row = cursor.fetchone()
if row:
    print(row)

我有一个 64 位的 windows 7 专业版和 运行 32 位的 anaconda python 2.7.12。 我的 MS-Access 是 32 位版本,我使用 windows 的 32 位 OBDC 连接生成器来生成路径。

我收到此错误消息:

ProgrammingError: ('42000', '[42000] [Microsoft][ODBC Microsoft Access Driver] Syntaxfehler in FROM-Klausel. (-3506) (SQLExecDirectW)')

有人能帮帮我吗?

这实际上是 SQL 服务器的一个缺陷 - 它不喜欢连字符。试试这个:

SELECT Monat FROM [TW-DS]

这将允许您在 table 或数据库名称中使用连字符。