Я думаю, что это уже отвеченный вопрос, но ответ ниже не работает для меня.
Как выполнить запрос, сохраненный в MS Access, используя pyodbc
Ниже приведен простой код Python для подключения к базе данных MS Access.Согласно ответу, созданный запрос на выборку следует рассматривать как представление из Python.Однако Python жалуется на это сообщение
Исходное сообщение об ошибке было на корейском языке.поэтому мой перевод сообщения:
Ошибка выполнения на sql «SELECT * FROM MySavedQuery»: («42000», «[42000] [Microsoft] [ODBC Microsoft Access Driver] не является допустимымУбедитесь, что в нем указан неправильный символ или символ или он слишком длинный (-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.
Что я сделал неправильно?Причиной является запрос?Кроме того, Call MySavedQueries также не работает
EDITED: запрос хорошо работает в Access (также я использую его более 6 месяцев для Power BI)
ОБНОВЛЕНИЕ: установкаpyodbc.pooling = False не заставляет скрипт работать
Заранее спасибо