如何从python运行MS Access宏

pal*_*ves 5 python macros ms-access-2007

我正在尝试从python脚本运行现有的Microsoft Access宏.我现在拥有的是

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()
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我得到了错误

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)
Run Code Online (Sandbox Code Playgroud)

Han*_*sUp 5

运行方法需要一个"用户定义的函数或子程序"的名称.但是,如果'test'是宏的名称,请使用RunMacro方法

我不确定是否需要括号,但其中一个应该有用.

objAccess.DoCmd.RunMacro('test')
Run Code Online (Sandbox Code Playgroud)