2

嗨,我正在从 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
4

1 回答 1

1

在 VBA 中,我们通常设置对象变量Nothing来处理它们。在 Python 中,尝试显式删除您的objAccess变量。

del objAccess

抱歉,我的 Python 因废弃而生锈,所以也许我的语法有误。但类似的事情可能会有所帮助。

另外,我不记得在方法之后是否需要一对括号.Quit。试试这样以防万一:

objAccess.Application.Quit()

如果objDB仍然持有对 Access 应用程序/db 的引用,也将其删除。

del objDB

但是,如果您实际上并没有在实际代码中的其他地方使用它,请objDB完全消除它。

于 2012-04-20T18:39:51.990 回答