window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Ereignisse in Formularen: öffnen und Schließen

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Nachdem Sie im ersten Teil dieser Artikelreihe gelernt haben, wie Sie die Reihenfolge der auftretenden Ereignisse beim öffnen und Schließen von Formularen samt Unterformular ermitteln, schauen wir uns in diesem Teil genauer an, was beim öffnen eines Formulars geschieht und welche Aktionen Sie in den verschiedenen Ereignisprozeduren unterbringen können.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1205_EreignisseInFormularen_2.mdb.

Ereignisse beim öffnen eines Formulars

Schauen wir uns nun im Detail an, was beim öffnen eines Formulars geschieht und was Sie mit den ausgelösten Prozeduren anfangen können.

Das Ereignis Beim öffnen

Dieses Ereignis wird beim öffnen eines Formulars als Erstes ausgelöst. Damit dies geschieht, stellen Sie den Wert der Ereigniseigenschaft Beim öffnen auf den Wert [Ereignisprozedur] ein und klicken auf die Schaltfläche mit den drei Punkten, um die durch das Ereignis ausgelöste Ereignisprozedur anzulegen. Diese sieht zunächst so aus:

Private Sub Form_Open(Cancel As Integer)
End Sub

Es bietet einen Parameter namens Cancel, mit dem sich das öffnen abbrechen lässt, und das ist einer der wesentlichen Unterschiede zum Ereignis Form_Load, das wir gleich vorstellen.

Das Ereignis Beim Laden

Dieses Ereignis wird nach dem Ereignis Form_Open ausgelöst. Der wesentliche Unterschied zwischen beiden Ereignissen ist, dass Sie das öffnen des Formulars im Ereignis Beim öffnen abbrechen können. Außerdem bietet das Form_Load-Ereignis die Möglichkeit, die angezeigten Daten bereits beim Laden per VBA-Code anzupassen.

öffnungsvorgang abbrechen

Wenn Sie den Parameter Cancel auf den Wert True einstellen, wird das Formular gar nicht erst geöffnet – probieren Sie es aus:

Private Sub Form_Open(Cancel As Integer)
     Cancel = True
End Sub

Natürlich macht es keinen Sinn, ein Formular mit einer Prozedur auszustatten, die dieses sofort wieder schließt. Dafür sollte es schon eine entsprechende Bedingung geben – zum Beispiel, dass das Formular keine Daten enthält. Dies lässt sich wie folgt realisieren:

Private Sub Form_Open(Cancel As Integer)
     If Me.Recordset.EOF Then
         MsgBox "Das Formular enthält keine Daten."
         Cancel = True
     End If
End Sub

Das Recordset-Objekt ermöglicht den Zugriff auf die Daten des Formulars. Wenn die Eigenschaft EOF wahr ist, bedeutet dies, dass der Datensatzzeiger sich hinter dem letzten Datensatz befindet, was gleichbedeutend mit einer leeren Datenherkunft ist. In diesem Fall soll eine Meldung erscheinen und der Parameter Cancel auf den Wert True eingestellt werden, damit das Formular nach der Anzeige der Meldung gar nicht erst geöffnet wird.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar