2012-02-07 98 views
4

我试图从python脚本运行现有的Microsoft Access宏。 我现在已经是如何从python运行MS 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() 

当我运行此我得到的错误

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) 

回答

5

Run Method需要一个“用户定义的函数或子过程”的名称。但是,如果'测试'是一个宏的名称,请使用RunMacro Method

我不确定是否需要括号,但其中一个应该起作用。

objAccess.DoCmd.RunMacro 'test' 
objAccess.DoCmd.RunMacro('test') 
+0

感谢objAccess.DoCmd.RunMacro('test')的工作 – paldives 2012-02-07 15:20:23