2017年10月27日

【Access】現在開いている全てのフォームを参照する


現在開いている全てのフォームを参照するには、Formsコレクションを使った方法とAllFormsコレクションを使った方法があります。

たとえばこのようなデータベース(accdbファイル)があるとします。



開いている全てのフォーム名を取得するにはそれぞれ次のように記述します。

Formsコレクション

Public Sub GetOpenFormsInfo()

    Dim frm As Form
    Dim msg As String
    
    For Each frm In Forms
    
        msg = msg & frm.Name & vbCrLf
        
    Next
    
    MsgBox msg
    
End Sub
Formsコレクションは、現在開いているフォームのコレクションになります。


AllFormsコレクション

Public Sub GetOpenFormsInfo()

    Dim frm As AccessObject
    Dim msg As String
    
    For Each frm In CurrentProject.AllForms
    
        If frm.IsLoaded Then
            msg = msg & frm.Name & vbCrLf
        End If
        
    Next
    
    MsgBox msg
    
End Sub
IsLoadedは、AccessObjectが現在ロードされているかを示します。すなわちIsLoaded=Trueならフォームが開いているということになります。


実行結果







スポンサーリンク