2012-02-07 74 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