現在開いている全てのフォームを参照するには、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ならフォームが開いているということになります。実行結果

スポンサーリンク