我的应用程序旨在打开同一表单“请求”的多个实例。在图中,通过单击表单中的特定按钮,可能会发生一系列更新操作,然后关闭当前实例。
我已经能够管理当前记录的更新操作。但是,通过调用
Docmd.Close
或
Docmd.Close acForm, Me.Name, acSaveNo
在第一个打开的表单实例上触发close事件,而不一定是触发操作的实例。
有没有办法通过使用VBA代码关闭特定实例?
答案 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