2017年10月27日

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


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

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



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

Formsコレクション

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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コレクション

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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ならフォームが開いているということになります。


実行結果







スポンサーリンク



Follow Me on Pinterest
Clip to Evernote