2016-11-25 69 views
1

私のアプリケーションは、同じフォーム 'Request'のいくつかのインスタンスを開くように設計されています。プロットでは、フォーム内の特定のボタンをクリックすると、一連の更新アクションが発生し、その後に現在のインスタンスがクローズされます。VBAを使用してAccessで単一のフォームインスタンスを閉じるにはどうすればよいですか?

私は現在のレコードの更新操作を管理できました。しかし、

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 
関連する問題