Home > Artikel > Ausgabe 5/2011 > Meldungsfenster anzeigen und auswerten

Meldungsfenster anzeigen und auswerten

  PDF ansehen

  Download PDF und Beispieldatenbank

Das Meldungsfenster ist ein wichtiges und einfach zu bediendendes Element zur Interaktion mit dem Benutzer. Einfache Meldungsfenster zeigen einfach nur Meldungen an und werden durch einen Klick auf die OK-Schaltfläche wieder geschlossen. Sie können damit jedoch auch einfache Fragen stellen, die der Benutzer per Mausklick auf die unterschiedlichen Schaltflächen beantworten kann.

Beispieldatenbank

Die Beispiele zu diesem Artikel finden Sie in der Datenbank 1105_Meldungsfenster.mdb.

Einfaches Meldungsfenster

Meldungsfenster zeigen Sie mit der MsgBox-Anweisung an. Auch wenn diese Anweisung mehrere Parameter anbietet, reicht der Einsatz des ersten Parameters in vielen Fällen schon aus. Dabei soll schlicht und einfach ein Text angezeigt werden (siehe Bild 1):

Die einfachste Variante eines Meldungsfensters

Bild 1: Die einfachste Variante eines Meldungsfensters

MsgBox "Hallo"

Sie können diese Anweisung zum Ausprobieren einfach im Direktfenster des VBA-Editors eingeben. Dieses öffnen Sie am schnellsten mit der Tastenkombination Strg + G. Die besondere Eigenart des Meldungsfensters ist, dass die aufrufende Anwendung nicht fortgeführt wird, bis der Benutzer das Meldungsfenster wieder geschlossen hat.

Parameter der MsgBox-Anweisung

Das Meldungsfenster kann natürlich nicht nur einfache Texte anzeigen. Sie können auch die Titelzeile festlegen, eines von vier Icons auswählen und ein Set von Schaltflächen festlegen.

Dies sind die vier Parameter des MsgBox-Anweisung:

  • prompt: Die soeben bereits verwendete Meldung.
  • buttons: Gibt an, welche Schaltflächenkombination das Meldungsfenster anzeigen soll.
  • title: Legt den Text in der Titelzeile des Meldungsfensters fest.

Die beiden übrigen Parameter helpfile und context werden in der Praxis so gut wie gar nicht eingesetzt und deshalb hier nicht beschrieben.

Meldungstext

Der Meldungstext kann ca. 1.024 Zeichen lang sein. Zeilenumbrüche erhalten Sie, indem Sie den Text auf zwei durch Anführungszeichen eingefasste Zeichenketten aufteilen und die Konstante vbCrLf wie folgt integrieren:

MsgBox "Erste Zeile" & vbcrlf & "Zweite Zeile"

Schaltflächen und Co.

Wenn Sie im Direktbereich mit der Eingabe der Parameter der MsgBox-Funktion experimentieren, stoßen Sie schnell darauf, dass der zweite Parameter offensichtlich nicht nur für die Darstellung der Schaltflächen zuständig ist. In der Tat bietet IntelliSense eine ganze Reihe von Werten für diesen Parameter an (siehe Bild 2) – und nur einige scheinen tatsächlich für Schaltflächenkombinationen zu stehen. Dabei handelt es sich um die folgenden Werte:

Der zweite Parameter offenbart mehr Optionen als sein Name besagt.

Bild 2: Der zweite Parameter offenbart mehr Optionen als sein Name besagt.

  • vbAbortRetryIgnore: Zeigt die Schaltflächen Abbrechen, Wiederholen und Ignorieren an.
  • vbOKCancel: Zeigt die Schaltflächen OK und Abbrechen an.
  • vbOKOnly: Zeigt nur die Schaltfläche OK an.
  • vbRetryCancel: Zeigt die Schaltflächen Wiederholen und Abbrechen an.
  • vbYesNo: Zeigt die Schaltflächen Ja und Nein an.
  • vbYesNoCancel: Zeigt die Schaltflächen Ja, Nein und Abbrechen an.

Eine Übersicht der verschiedenen Kombinationen zeigt Bild 3. Mit einem der oben genannten Werte stellen Sie also die Schaltflächenkombination ein – wie Sie diese auswerten, beschreiben wir weiter unten.

Alle möglichen Schaltflächen-Kombinationen der MsgBox-Anweisung

Bild 3: Alle möglichen Schaltflächen-Kombinationen der MsgBox-Anweisung

Aber was fangen Sie mit den übrigen Werten für den Parameter buttons an? Ganz einfach: Mit diesem einen Parameter legen Sie gleich mehrere Eigenschaften fest – nicht nur die anzuzeigende Schaltflächenkombination!

Dazu tragen Sie einfach zwei oder mehr Werte durch den Operator Or voneinander getrennt für den Parameter buttons ein.

Als Standardwert verwendet die MsgBox-Anweisung übrigens den Wert vbOKOnly.

Icon des Meldungsfensters

Dazu sehen wir uns als Nächstes vier weitere Werte an, die für verschiedene Icons im Meldungsfenster stehen:

  • vbCritical: Warnhinweis
  • vbExclamation: Ausrufezeichen auf gelbem Hintergrund
  • vbInformation: Informations-Symbol
  • vbQuestion: Fragezeichen-Symbol

Das Aussehen der vier Icons entnehmen Sie Bild 4.

Die verschiedenen Icons im Meldungsfenster

Bild 4: Die verschiedenen Icons im Meldungsfenster

Wenn Sie eine Schaltflächenkombination und ein be­stim­mtes Icon kombinieren möchten, verwenden Sie eine Anweisung wie die folgende:

MsgBox "OK und Abbrechen mit Fragezeichen-Icon", vbOKCancel Or vbQuestion

Standardmäßig zeigt die Msg­Box-Anweisung gar kein Icon an, Sie müssen also explizit einen der hier angegebenen Werte zur Eigenschaft buttons hinzufügen.

Standardschaltfläche festlegen

Damit ist der Fundus der Werte für den Parameter buttons immer noch nicht erschöpft. Mit den folgenden vier Werten legen Sie fest, welche Schaltfläche als Standardschaltfläche verwendet wird:

  • vbDefaultButton1
  • vbDefaultButton2
  • vbDefaultButton3
  • vbDefaultButton4

Die Standardschaltfläche ist diejenige, die beim Anzeigen des Meldungsfensters aktiviert ist und etwa durch das Betätigen der Leertaste oder der Eingabetaste ausgelöst werden kann. Mit der Tabulator-Taste oder den Cursor-Tasten kann der Benutzer bei angezeigtem Meldungsfenster den Fokus auf eine andere Schaltfläche verschieben.

Den Wert für die Standardschaltfläche fügen Sie etwa wie im folgenden Beispiel zum Parameter buttons hinzu:

MsgBox "Standard-Schaltfläche: Abbrechen", µ

vbOKCancel Or vbDefaultButton2

Standardmäßig stellt Access die linke Schaltfläche als Standardschaltfläche ein.

Weitere Werte für den Parameter buttons

Die übrigen Werte dienen beispielsweise dem Anzeigen eines Hilfe-Buttons, dem rechtsbündigen Ausrichten der Überschrift oder beider Texte oder sind unter Access nicht wirksam.

Hier die für übliche Anwendungen sinnvollen Werte:

  • vbMsgBoxHelpButton: Zeigt eine Hilfe-Schaltfläche an.
  • vbMsgBoxRight: Zentriert Titel und Text rechts.

Titelzeile angeben

Der dritte Parameter namens title nimmt einen Text entgegen, der in der Titelzeile des Meldungsfensters angezeigt wird. Wenn Sie diesen Parameter nicht angeben, erscheint unter Access der Ausdruck Microsoft Access in der Titelzeile.

Benutzereingaben in Meldungsfenstern auswerten

MsgBox ist eine Funktion: Es liefert einen Wert der Enumeration VBMsgBoxResult zurück. Hinter dieser Enumeration verbergen sich Integer-Zahlenwerte, für die jeweils eine Konstante hinterlegt ist. Es gibt die folgenden Konstanten:

  • vbOK (1): OK
  • vbCancel (2): Abbrechen
  • vbAbort (3): Abbruch
  • vbRetry (4): Wiederholen
  • vbIgnore (5): Ignorieren
  • vbYes (6): Ja
  • vbNo (7): Nein

Die MsgBox-Funktion gibt einen dieser Werte zurück, wenn Sie diese als Funktion aufrufen. Dies können Sie leicht im Direktfenster des VBA-Editors testen. Geben Sie dort beispielsweise folgende Anweisung ein:

Debug.Print MsgBox("Ja oder Nein?", vbYesNo)

Dies zeigt ein Meldungsfenster mit den beiden Schaltflächen Ja und Nein an. Klicken Sie auf Ja, gibt die Debug.Print-Anweisung als Ergebnis der MsgBox-Funktion den Wert 6 aus, für Nein den Wert 7.

Diese Rückgabewerte können Sie natürlich auch innerhalb von Prozeduren auswerten. Im folgenden Beispiel wird die Antwort zunächst in einer Integer-Variablen namens intAntwort gespeichert.

Dann prüft eine Select Case-Bedingung, ob die Variable den Wert vbOK (1) oder vbCancel (2) aufweist und zeigt jeweils ein entsprechendes Meldungsfenster an:

Public Sub MeldungsfensterMitRueckgabewert()

     Dim intAntwort As Integer

     intAntwort = MsgBox("Klicken Sie auf eine µ

                          Schaltfläche.", vbYesNo, "MsgBox mit Rückgabewert")

     Select Case intAntwort

         Case vbOK

             MsgBox "OK."

         Case vbCancel

             MsgBox "Abbrechen."

     End Select

End Sub