- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我目前正在使用 Application.Quit
,它使 MS Access 应用程序的外壳保持打开状态。
在处理完针对目标应用程序的调用函数后,应用程序的每个实例都保持打开状态;即使特定的数据库实例已关闭。
如何使用 VBA 以编程方式关闭数据库“shell”应用程序窗口?
这是一个变量创建方式和关闭方式的示例:
Dim appAccess As New Access.Application
' Do stuff here...
appAccess.CloseCurrentDatabase
最佳答案
根据文档:Application.Quit与 DoCmd.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.Quit
是 added 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/
我是一名优秀的程序员,十分优秀!