Home

1 1 1 1 1 1 1 1 1 1 Rating 4.67 (6 Votes)

Problemstellung:
Es ist auf herkömmlichen Weg nicht möglich, die Button-Beschriftungen der Message-Boxen zu ändern.
Die gängigste Methode diese Beschränkung zu umgehen liegt in der Erstellung eines
Formulars mit benutzerdefinierten Buttons.
Nun ist aber sehr mühevoll für jeden Einsatz eine eigenes Formular zuerstellen,
mit 3 oder 4 oder 5 Buttons, Beschriftung jedesmal anders, noch ein anderes Icon usw.
Vor einiger Zeit wurde auf https://www.access-guru.de ein Bsp von unbekanntem Autor vorgestellt
(Alle Rechte liegen trotzdem beim Autor), das alle diese Punkte den Aufwand auf ein Minimum reduziert,
da für alle Einstellungen ein Formular verwendet wird.
Gefüllt wird es durch eine Function der alle benötigten Werte übergeben wird.

Voraussetzungen:

Update vom 23.03.2012
Vielen Dank an Anne Berg für die Erweiterung des Codes auf 7 benutzerdefinierte Buttons

Das Bsp ist ab A00 lauffähig.

Um das vorgestellte Bsp nutzen zu können, muß man das
Modul
"modMsgBox2" und das
Formular
"frmMsgBox2" in seine DB kopieren.

 

Funktionsweise:
Die Standard-MessageBox wird durch das Modul ersetzt.
Um eine normale herkömmliche MsgBox aufzurufen müssen keine Veränderungen vorgenommen werden.
Aber auch hier kommt schon die neue MsgBox zum Einsatz.
Der Aufruf für eine einfache MsgBox könnte so:
MsgBox2 Title:="Einfache OK-Box", _
          Prompt:="Ganz einfach als Ersatz für das Original", _
          Buttons:=vbOKOnly + vbInformation

oder so:
MsgBox2 "Ganz einfach als Ersatz für das Original", vbOKOnly + vbInformation, _
        "Einfache OK-Box"

Die Anzeige eine MsgBox mit mehreren Buttons und der Weiterverarbeitung der Rückgabewerte

sähe dann so aus:

Select Case MsgBox2(Title:="Und nun?", _
                      Prompt:="Na, ist das was?", _
                      Buttons:=vbYesNoCancel + vbQuestion)
     Case vbYes: MsgBox "Ja"
     Case vbNo: MsgBox "Nein"
     Case vbCancel: MsgBox "Abbruch"
 End Select
Bis hierhin haben wir aber noch nicht das erreicht was das eigentliche Ziel ist, das ändern der Button-Standardbeschriftungen.

Die neue MsgBox bietet die Möglichkeit bis zu 6 benutzerdefinierte Buttons mit beliebigen Text
in der MsgBox anzuzeigen.
Es können ebenfalls die bekannten Symbole mitbenutzt werden.

Desweiteren kann der Default-Button festgelegt werden und auch die Festlegung des Hotkeys .

Um jetzt eine MsgBox mit 5 Buttons und den Beschriftungen "Ja", "Ja, alle", "Nein", "Nein, alle"
und "Abbruch zu erstellen wäre folgender Aufruf erforderlich:

MsgBox2 Title:="Datei überschreiben", _
          Prompt:="Die Datei xyz ist schreibgeschützt." & vbCrLf & _
                  "Soll die Datei überschrieben werden?", _
          Buttons:=vbButton5 + vbCritical , _
          UserButton1:="Ja", _
          UserButton2:="Ja, alle", _
          UserButton3:="Nein", _
          UserButton4:="Nein, alle", _
          UserButton5:="Abbruch"


Es sind aber auch längere Text als Beschriftungen möglich. s. das nächste Bsp.

MsgBox2 Title:="Umfrage", _
          Prompt:="Bitte geben Sie an wie Sie sich zur Zeit fühlen", _
          Buttons:=vbButton4 + vbQuestion, _
          UserButton1:="Ich fühle mich gar nicht gut und möchte dieses dumme Programm beenden", _
          UserButton2:="Mir ist eigentlich alles egal", _
          UserButton3:="Was soll das ganze hier eigentlich?", _
          UserButton4:="Also, ich finde alles ganz klasse!"

Kommen wir jetzt zu den Rückgabewerten der neuen MsgBox.
Folgende Werte werden von den Buttons zurückgegeben:

Button1 = 7
Button2 = 8
Button3 = 9
Button4 = 10
Button5 = 11
Button6 = 12
Button7 = 13

Jetzt kann man daran gehen den Rückgabewert auszuwerten. Nehmen wir dazu unser letztes Bsp.
Der User bekommt je nach seinem Zustand eine Tipp was er tun soll.
Da die MsgBox 4 Buttons hat kann sie die Rückgabewerte 10-13 annehmen.

Dim i As Integer
i = MsgBox2(Title:="Umfrage", _
          Prompt:="Bitte geben Sie an wie Sie sich zur Zeit fühlen", _
          Buttons:=vbButton4 + vbQuestion, _
          UserButton1:="Ich fühle mich gar nicht gut und möchte dieses dumme Programm beenden", _
          UserButton2:="Mir ist eigentlich alles egal", _
          UserButton3:="Was soll das ganze hier eigentlich?", _
          UserButton4:="Also, ich finde alles ganz klasse!")
If i = 7 Then
    MsgBox "Am besten ins Bett legen.", vbOKOnly + vbInformation, "Antwort für Button1"
ElseIf i = 8 Then
    MsgBox "Auch am besten ins Bett legen.", vbOKOnly + vbInformation, "Antwort für Button2"
ElseIf i = 9 Then
    MsgBox "Es wurde nicht über den Sinn gefragt.", vbOKOnly + vbInformation, "Antwort für Button3"
Else
    MsgBox "Das kann ich nicht glauben!!!", vbOKOnly + vbInformation, "Antwort für Button4"
End If

natürlich ist auch mittels "Select Case" eine Auswertung möglich:

Select Case MsgBox2(Title:="Umfrage", _
          Prompt:="Bitte geben Sie an wie Sie sich zur Zeit fühlen", _
          Buttons:=vbButton4 + vbQuestion, _
          UserButton1:="Ich fühle mich gar nicht gut und möchte dieses dumme Programm beenden", _
          UserButton2:="Mir ist eigentlich alles egal", _
          UserButton3:="Was soll das ganze hier eigentlich?", _
          UserButton4:="Also, ich finde alles ganz klasse!")
    Case vbButton1
        MsgBox "Am besten ins Bett legen.", vbOKOnly + vbInformation, "Antwort für Button1"
    Case vbButton2
        MsgBox "Auch am besten ins Bett legen.", vbOKOnly + vbInformation, "Antwort für Button2"
    Case vbButton3
        MsgBox "Es wurde nicht über den Sinn gefragt.", vbOKOnly + vbInformation, "Antwort für Button3"
    Case Else
        MsgBox "Das kann ich nicht glauben!!!", vbOKOnly + vbInformation, "Antwort für Button4"
End Select





Dateien:

Ersatz für die Standard MessageBox

ab A00

Die Zip-Datei enthält ein Version eine ab A00

 
Datum 05.02.2018
Dateigröße 45.07 KB
Download 4.693

Ähnliche Artikel

You have no rights to post comments

Login Form

Neueste Artikel

SQL zu VBA Konverter
26. Oktober 2018
Problemstellung: Nur für 32Bit Office Versionen Gibt es eine Möglichkeit SQL-Code einer Abfrage so zu konvertieren das der Code in VBA genutzt werden kann? Lösung: Bis Access 2010 gibt das Tool...
1.png5.png7.png9.png0.png9.png7.png
Heute129
Gestern486
Diese Woche1446
Dieser Monat7720
Total1579097

  • IP: 23.22.236.90
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

3
Online

29. März 2024

Letzte Kommentare

  • Berechnen von Zeiträumen als Abfragekriterium

    elmard 02.02.2021 21:02
    1000 Dank
    für diese Datenbankanwendung! Eine sehr gute Umsetzung mit den vielen Möglichkeiten des Datums.

    Weiterlesen...

     
  • SQL zu VBA Konverter

    Tommy Admin 03.11.2019 16:33
    RE: SQL zu VBA Konverter
    Hallo Elmard, danke für die Info. :lol:

    Weiterlesen...

     
  • SQL zu VBA Konverter

    elmard 03.11.2019 14:49
    Bei SmartTools neue Version 4.0
    Dieses Tool liegt inzwischen in der Version 4 vor und läuft nun auch von A2013 und A2016 sowie im ...

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    TommyK 27.02.2019 06:52
    Workshop
    Hallo mpegjunkie, danke für Dein Feedback. Schön das Dir Workshop weiter hilft. :D

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    mpegjunkie 26.02.2019 20:10
    Perfekter Workshop
    Hallo Tommy, perfekter Workshop, toll und umfassend erläutert. Jetzt nutze ich diese Controls auch.

    Weiterlesen...