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

时间:2016-11-25 15:03:08

标签: vba access-vba

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

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

Docmd.Close

Docmd.Close acForm, Me.Name, acSaveNo

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

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

1 个答案:

答案 0 :(得分: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