Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Formular als Dialog

Wenn man ein Formular zur Abfrage von Informationen verwendet, die man an anderer Stelle - einem anderen Formular oder einer VBA-Prozedur - weiterverwenden mchte, kann man das Formular so ffnen, dass Access bis zur Eingabe der gewnschten Informationen alles andere zurckstellt

Dazwischenfunken verboten

Das ffnen eines Formulars erfolgt normalerweise per VBA. In vielen Fllen soll die aufrufende Routine die Formulareingabe noch weiterverarbeiten. Das funktioniert allerdings beim Standardaufruf nicht. Hier ist ein Aufruf wie in folgendem Beispiel erforderlich:

DoCmd.OpenForm "Formularname", WindowMode=acDialog

Access unterbricht den auszufhrenden Code solange, bis das aufgerufene Formular wieder geschlossen ist.

Auswerten von Dialog-Formularen

Wenn man ein Formular als Dialog ffnet, mchte man die Benutzereingaben vermutlich auch auswerten. In dem Fall bietet sich die folgenden Kombination an. Die aufrufende Routine enthlt unter anderem den Aufruf des Formulars:

...

DoCmd.OpenForm "Formularname", WindowMode=acDialog

...

Das aufgerufene Formular enthlt beispielsweise eine Schaltflche mit der Beschriftung OK, um dieses zu schlieen. Die Schaltflche lst beim Klicken eine Prozedur aus, die unter anderem folgende Zeile enthlt:

...

Me.Visible = False

...

Diese Anweisung macht das Formular unsichtbar. Dadurch gibt das Formular den Fokus an die aufrufende Routine zurck. Auer dem Setzen der Eigenschaft Sichtbar auf den Wert Falsch gibt es noch eine weitere Methode, den Fokus an die aufrufende Routine zurckzugeben: mit dem Schlieen des Formulars, etwa durch folgende Zeile:

DoCmd.Close acForm, Me.Name

Der Unterschied zwischen den beiden Varianten ist, dass das Formular bei der ersten noch geffnet ist und bei der zweiten nicht. Der entscheidende Unterschied ist, dass die aufrufende Routine bei der ersten Variante noch auf das nicht mehr sichtbare, aber dennoch geffnete Formular zugreifen kann:

MsgBox Forms!Formularname!Textfeld

Wenn die Routine auf diese oder hnliche Weise alle gewnschten Informationen aus dem unsichtbaren Formular gezogen hat, kann sie es schlieen:

DoCmd.Close acForm, "Formularname"

Mit dieser Vorgehensweise ist es mglich, auch die in ungebundenen Formularen eingegebenen Informationen zu verarbeiten.

© 2003-2015 André Minhorst Alle Rechte vorbehalten.