Я пытаюсь автоматизировать извлечение некоторых данных из запроса базы данных MS Access (.accdb).
Я использую win32com, чтобы открыть базу данных Access, и я получил всю информацию о виджетах, которые я хочу взаимодействовать с. Я могу изменять значения виджетов и открывать формы, читать и создавать запросы, хотя я не знаю, как нажимать кнопку (CommandButton).
Мой код прост и выглядит примерно так:
import win32com.client as win
access = win.Dispatch('Access.Application')
access.Visible = True
db = access.OpenCurrentDatabase(r'databasepath.accdb')
app.DoCmd.OpenForms(formname)
и затем я могу сослаться на все виджеты, с которыми я хочу взаимодействовать, через:
widget = app.Forms(formname).Controls(widgetname)
Как я могу нажать CommandButton после того, как я на него ссылаюсь? Я проверил документацию MS Access для Command Object, но нет метода щелчка. Обходное решение, которое я использую:
widget.SetFocus()
shell.SendKeys('{Enter}') #it refers to WScript.Shells
Но я не хочу использовать SendKeys, потому что он может легко генерировать ошибку, например, если пользователь работает над чем-то другим. Я также решил прочитать запрос SQL, который связан с нажатием кнопки, чтобы изучить другой обходной путь, хотя я оставляю его как последний вариант.