根据文档:Application.Quit与DoCmd.Quit做同样的事情。即
Quit 方法退出 Microsoft Access。在退出之前,您可以选择多个选项之一来保存数据库对象。
您可以尝试使用acQuitSaveNone
“退出 Microsoft Access 而不保存任何对象”的参数或 2 调用它们中的任何一个。经过进一步审查,添加了Application.Quit
asDoCmd.Quit
以实现 Access 95 的向后兼容性(请参阅退出方法的备注,因为它适用于 DoCmd 对象。)如果您有权限,执行其中任何一个操作仍应在关闭时自动压缩,这可能是你炮弹的原因。
如果这对你不起作用,这里有一个有点极端的建议。将其保存为 vbscript 文件,并在真正完成 Access 后调用它。这将终止 Windows pc 上的所有 MSAccess 进程,无需压缩和修复。
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("SELECT * FROM Win32_Process WHERE Name = 'msaccess.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next
调用用实际路径替换 [vbspath] 的脚本。如果路径有空格,请确保使用双引号并将其放在引号中:
shell "cscript [vbspath]"