您好,我正在运行来自 Python 2.6.5 的 MS Access (2010) 宏。它成功运行了宏,但 accdb 文件并未完全正确关闭。在我的宏运行后,它显示了一个 .laacdb 文件和一个 .accdb 文件。我认为执行 CloseCurrentDatabase 和 Quit 语句可以做到这一点,但事实并非如此。 .laacdb 文件在我重新启动计算机后消失。谢谢。
from win32com.client import Dispatch
strDbName = "C:\\converter\\MainConverter.accdb"
objAccess = Dispatch("Access.Application")
objAccess.Visible = False
objAccess.OpenCurrentDatabase(strDbName)
objDB = objAccess.CurrentDb()
objAccess.DoCmd.RunMacro('Export_to_PDF')
objAccess.Application.CloseCurrentDatabase()
objAccess.Application.Quit
请您参考如下方法:
在 VBA 中,我们通常将对象变量设置为 Nothing 以处理它们。在 Python 中,尝试显式删除您的 objAccess 变量。
del objAccess
抱歉,我的 Python 因不用而生锈了,所以可能我的语法有误。但类似的事情可能会有所帮助。
此外,我不记得在 .Quit 方法之后是否需要一对括号。以防万一:
objAccess.Application.Quit()
如果 objDB 仍然持有对 Access application/db 的引用,也将其删除。
del objDB
但是,如果您实际上并未在实际代码的其他地方使用它,则只需完全消除 objDB。
