Как заполнить форму из MS Access с помощью PyODBC

Я нашел запрос, используемый для создания формы MS Access, знает ли кто-нибудь, можно ли позвонить из PyODBC (на самом деле я просто пытаюсь автоматически распечатать его в своем скрипте)? Запрос выглядит так, как показано ниже. Что, если это возможно, может ли кто-нибудь привести пример того, как будет выглядеть код Python?

Просто обновление. Я нашел сам SQL-запрос (ниже), так можно ли сгенерировать эту форму с помощью PyODBC и распечатать ее?

SELECT ProgramData.ProgramNo, OperationData.OpNo, OperationData.OpDescription, OperationData.StationNo, ProgramData.Machine, ProgramData.CycleTime, ProgramData.[Mat-Piece], ProgramData.FileName, ProgramData.ProgramNotes, ProgramData.Status, ProgramData.PartNumber, PartData.PartName, PartData.Material, PartData.Size, ProgramData.OpNum, ProgramData.BackProgram, OperationData.[B-OpNo], OperationData.[BOpDescription], OperationData.[B-Spindle], OperationData.Spindle, OperationData.LineNum,OperationData.[B-StationNo], OperationData.MillGraphic
FROM (ProgramData INNER JOIN OperationData ON ProgramData.ProgramNo = OperationData.ProgramNo) INNER JOIN PartData ON ProgramData.PartNumber PartData.PartNumber
WHERE (((ProgramData.ProgramNo)=[Forms]![Frm_ProgramData]![ProgramNo]))
ORDER BY OperationData.LineNum;

введите здесь описание изображения


person Chris Macaluso    schedule 31.01.2019    source источник
comment
Мне непонятно, о чем вы спрашиваете. Вы можете запустить этот запрос с помощью PyODBC (вам нужно будет удалить параметр формы), но он не выполняет формы. PyODBC работает только с базой данных Access и никогда не будет касаться форм.   -  person Erik A    schedule 31.01.2019
comment
Думаю, это ответ на мой вопрос. Я хотел подключиться к базе данных и автоматически распечатать форму. Я получал The specified field 'ProgramNo' could refer to more than one table listed in the FROM clause of your SQL statement. при попытке взаимодействия с запросом. Вы знаете, как правильно назначить псевдоним, чтобы обойти это? Я не знаю синтаксиса @ErikvonAsmuth   -  person Chris Macaluso    schedule 31.01.2019
comment
Это маловероятная ошибка с этим SQL. Вы удалили строку WHERE (((ProgramData.ProgramNo)=[Forms]![Frm_ProgramData]![ProgramNo]))? Поскольку там есть параметр со значением формы, PyODBC не сможет его обработать должным образом.   -  person Erik A    schedule 31.01.2019
comment
Кроме того, если вы хотите распечатать формы, вы можете сделать это с помощью автоматизации Python и COM. Этот ответ должен быть примерно тем, что вам нужно, формы немного отличаются от отчетов, но это не так уж и далеко.   -  person Erik A    schedule 31.01.2019
comment
Звучит довольно интересно, я раньше не использовал COM. Мне нравится ваш пример печати отчета, но я не понимаю, как получить запрошенные данные из таблиц в отчет или форму? Я предполагаю, что этот шаг отсутствует, потому что у вас нет того же самого в отчетах?   -  person Chris Macaluso    schedule 31.01.2019
comment
Access сделает это за вас. COM по сути просто автоматизирует действия в приложении Access. Если вы правильно настроили источник записей в Access, вам больше ничего не нужно делать. При желании вы можете добавить дополнительные фильтры, но это не обязательно.   -  person Erik A    schedule 31.01.2019
comment
Извините, я не знаю этого процесса, как Access справится с этим для вас, если я не введу информацию о запросе, которую хочу заполнить в форме?   -  person Chris Macaluso    schedule 31.01.2019
comment
Эх ... Формы обычно не требуют информации для заполнения. Если у вас есть конкретная настройка, вам нужно поделиться этим в вопросе.   -  person Erik A    schedule 31.01.2019