【问题标题】:VBA Code to Close an Access Database Without Leaving a Shell of the application open在不打开应用程序外壳的情况下关闭 Access 数据库的 VBA 代码
【发布时间】:2012-09-10 03:08:36
【问题描述】:

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

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

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

这是一个如何创建变量以及我如何关闭它的示例:

Dim appAccess As New Access.Application

' Do stuff here...

appAccess.CloseCurrentDatabase

【问题讨论】:

  • 你是如何调用这 50 个 shell 的?你是手动打开的,还是用代码打开的?

标签: database ms-access vba ms-access-2003


【解决方案1】:

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

Quit 方法退出 Microsoft Access。您可以选择几个之一 退出前保存数据库对象的选项。

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

如果这对您不起作用,这里有一个有点极端的建议。将其保存为 vbscript 文件,并在真正完成 Access 后调用它。这将终止 Windows 电脑上的所有 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]"

【讨论】:

    【解决方案2】:

    您需要针对实例变量执行 Application.Quit。

    例如,

    Dim appAccess As New Access.Application
    
    ' Do stuff here...
    
    appAccess.Application.Quit
    

    【讨论】:

      【解决方案3】:

      我总是使用DoCmd.Quit acQuitSaveAll
      这至少在 Access 2000、2003 和 2010 中有效(这是我看到它有效的地方)。

      【讨论】:

        【解决方案4】:

        Access.Quit 为我工作。也许试试这个而不是Application.Quit

        如果这不能解决问题,您的问题可能在其他地方,在这种情况下,请告诉我们更多关于这个项目的信息。

        【讨论】:

          【解决方案5】:

          DoCmd.Quit acQuitSaveAll,终于工作了。我之前尝试了所有其他选项,但外壳仍然挂起。

          【讨论】:

            【解决方案6】:

            将表单切换到设计视图。 将表单的BorderStyle 属性设置为None。 在查看菜单上,单击表单查看。请注意,表单的标题栏已完全删除。

            【讨论】:

              猜你喜欢
              • 2014-11-25
              • 2014-10-28
              • 2016-02-16
              • 2011-09-12
              • 2013-03-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多