Как запустить макрос MS Access из Python - PullRequest
4 голосов
/ 07 февраля 2012

Я пытаюсь запустить существующий макрос Microsoft Access из сценария Python.В настоящее время у меня есть

import win32api,time
from win32com.client import Dispatch

strDbName = 'Exit.mdb'
objAccess = Dispatch("Access.Application")
objAccess.Visible = False
objAccess.OpenCurrentDatabase(strDbName)
objDB = objAccess.CurrentDb()
objAccess.run('test')
objAccess.Application.Quit()

Когда я запускаю это, я получаю ошибку

Traceback (most recent call last):
  File "accessmacro.py", line 10, in <module>  
    objAccess.run('test')  
  File "<COMObject Access.Application>", line 2, in run  
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, u"Microsoft    Office  Access can't find the procedure 'test.'", None, -1, -2146825771), None)

1 Ответ

5 голосов
/ 07 февраля 2012

Метод запуска ожидает имя «пользовательской функции или подпроцедуры». Но, если 'test' - это имя макроса, используйте RunMacro Method

objAccess.DoCmd.RunMacro('test')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...