Access Anfänger: Wie kann ich feststellen ob ein bestimmtes Formular geöffnet ist?

Aus DBWiki
Wechseln zu: Navigation, Suche

Anforderung

Manchmal ist es notwendig im Codeverlauf festzustellen ob zu einem bestimmten Zeitpunkt ein Formular geöffnet ist.

Lösung 1

Die dazu benötigte Funktion kann auch mehrmals im gesamten Code verwendet werden, wenn sie in einem Standardmodul verwendet wird.

Public Function fctFormOffen(ByVal strFormName As String) As Boolean
   fctFormOffen = CBool(SysCmd(acSysCmdGetObjectState, acForm, strFormName) = 1)
End Function

Verwendung

   'Wenn das Formular geöffnet ist, wird "True" zurückgeliefert
   If fctFormOffen("Formularname") Then
      MsgBox "Das Formular ist geöffnet."
   Else
      MsgBox "Das Formular ist nicht geöffnet."
   End If

Lösung 2

Eine weitere Möglichkeit stellt der Einsatz der IsLoaded-Eigenschaft eines Formulars dar:

   If CurrentProject.AllForms("Formularname").IsLoaded Then
      MsgBox "Das Formular ist geöffnet."
   Else
      MsgBox "Das Formular ist nicht geöffnet."
   End If