我认为这是一个已经回答的问题,但是下面的答案对我不起作用。
How to execute query saved in MS Access using pyodbc
下面是连接MS Access数据库的简单python代码。 根据答案,创建的选择查询应视为来自Python的视图。但是,Python会用此消息抱怨
原始错误消息是韩语。因此消息的“我的翻译”是:
在SQL'SELECT * FROM MySavedQuery'上执行失败:('42000',“ [42000] [Microsoft] [ODBC Microsoft Access驱动程序]不是有效的名称。请确保在其中输入错误的字符或符号还是太长(-1002)(SQLExecDirectW)“)
有趣的是,除了那个简单的查询外,其他更简单的查询都在使用链接解决方案。
import pyodbc
import pandas as pd
connStr = (
r"Driver={Microsoft Access Driver (*.mdb, *.accdb)};"
r"DBQ=D:\Documents\Europe\DB\test.accdb;"
)
conn = pyodbc.connect(connStr)
query = "SELECT * FROM MySavedQuery"
dataf = pd.read_sql(query, conn)
conn.close()
MySavedQuery的结构为:
SELECT * FROM Table1
WHERE Condition1
UNION ALL
SELECT * FROM Table2
WHERE Condition2
此外,Table2是另一个accdb文件中的链接表。
我做错了什么?原因是查询? 呼叫MySavedQueries也无法正常工作
已编辑:该查询在Access中运行良好(对于Power BI我也已经使用了6个月以上)
更新:将pyodbc.pooling = False不能使脚本正常工作
预先感谢