Skip to main content
 首页 » 编程设计

python之objAccess.Application.Quit 在尝试使用 python 关闭 Access 数据库时没有完全工作

2025年05月04日23lhb25

您好,我正在运行来自 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。