TKSoft-Online

Ersatz für die Standard MessageBox mit benutzerdefinierten Buttonbschriftungen PDF Drucken E-Mail
( 6 Votes )
MS-Access Bsp. DB's - Bsp. Downloads Sonstiges
  
Mittwoch, den 09. Januar 2008 um 01:00 Uhr

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 http://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 unter A00-A03 lauffähig, unter A07 wurde es nicht getestet.

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 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





Ersatz für die Standard MessageBox

Ersatz für die Standard MessageBox
A00-A03 , A07 nicht getestet

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




Erstellt am
Dateigröße
Downloads
09.01.2008
45.07 KB
3478


Downloads in dieser Kategorie

MS-Access Sonstiges

MS-Access Sonstiges

 Seite: 1


DatumKlicks
Total8015
Mi. 2311
Di. 2213
Mo. 215
So. 204
Sa. 196
Fr. 185
Do. 172
Aktualisiert ( Freitag, den 23. März 2012 um 09:28 Uhr )
 

Kommentar schreiben


Sicherheitscode
Aktualisieren

Login

Latest Comments

Latest Forum Posts

Mehr »

Download Statistik

41 Kategorien
187 Dateien
173461 Downloads