gpt4 book ai didi

database - 关闭 Access 数据库而无需打开应用程序外壳的 VBA 代码

转载 作者:太空狗 更新时间:2023-10-30 01:43:05 24 4
gpt4 key购买 nike

我目前正在使用 Application.Quit,它使 MS Access 应用程序的外壳保持打开状态。

在处理完针对目标应用程序的调用函数后,应用程序的每个实例都保持打开状态;即使特定的数据库实例已关闭。

如何使用 VBA 以编程方式关闭数据库“shell”应用程序窗口?

这是一个变量创建方式和关闭方式的示例:

Dim appAccess As New Access.Application

' Do stuff here...

appAccess.CloseCurrentDatabase

最佳答案

根据文档:Application.QuitDoCmd.Quit 做同样的事情.即

The Quit method quits Microsoft Access. You can select one of several options for saving a database object before quitting.

您可以尝试使用参数 acQuitSaveNone 或“退出 Microsoft Access 而不保存任何对象”的 2 来调用它们中的任何一个。经过进一步审查,使用 Application.Quit 作为 DoCmd.Quitadded for backward compatibility for Access 95 (请参阅退出方法的备注,因为它适用于 DoCmd 对象。)如果您有权限,执行这些操作中的任何一个仍然应该在关闭时执行自动压缩,这可能是您 shell 的原因。

如果这对您不起作用,这里有一个有点极端的建议。将其另存为 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]"

关于database - 关闭 Access 数据库而无需打开应用程序外壳的 VBA 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12467080/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com