如何使用 VBA 在 Access 中关闭单个表单实例?

Posted

技术标签:

【中文标题】如何使用 VBA 在 Access 中关闭单个表单实例?【英文标题】:How can I close a single form instance in Access using VBA? 【发布时间】:2016-11-25 15:03:07 【问题描述】:

我的应用程序旨在打开同一表单“请求”的多个实例。在图中,通过单击表单中的特定按钮,可能会发生一系列更新操作,然后关闭当前实例。

我已经能够管理当前记录的更新操作。但是,通过调用

Docmd.Close

Docmd.Close acForm, Me.Name, acSaveNo

关闭事件在表单的第一个打开实例上触发,不一定是触发操作的实例。

有没有办法使用 VBA 代码关闭特定实例?

【问题讨论】:

【参考方案1】:

在您打开表单时通过其hWnd 属性识别这些表单,和/或将它们添加到一个集合,您可以在其中通过您选择的字符串来识别它们。

代码可以是这样的:

Option Compare Database
Option Explicit

Private colForms As Collection
Private blnFrmsInit As Boolean

Function MyFormOpen(strFrmName As String, strInstanceName As String) 

    Dim frm As Form

    If blnFrmsInit = False Then
        Set colForms = New Collection
        blnFrmsInit = True
    End If
    Set frm = New Form_lfrmSpecialtyPreferences
    frm.Caption = strInstanceName
    colForms.Add frm, strInstanceName
End Function

Function MyFormClose(strInstanceName As String)
    colForms.Remove strInstanceName
End Function

【讨论】:

以上是关于如何使用 VBA 在 Access 中关闭单个表单实例?的主要内容,如果未能解决你的问题,请参考以下文章

在 Access 中是不是可以从全局函数中关闭变量?

有啥方法可以使用 VBA 更改 Microsoft Access 中表单上的 PopUp 属性?

使用表(VBA)中的单个(分隔)字段填充列表框

在 WebRTC 库中关闭视图控制器时出现 EXC_BAD_ACCESS 错误时崩溃

如何在对话框中关闭 jQuery 对话框?

即使应用程序在android中关闭,如何在服务应该工作时添加位置权限?