Wichtige Information für TKSoft-Online.de


Beiträge haben neue URL's da ich eine neue SEF-Software habe.

1. Das Schreiben von Kommentaren ist allen Usern erlaubt, müssen aber von mir freigeschalten werden. (wegen Spam)
2. Die Downloads sind ohne Registrierung möglich.
3. Die alten User wurden nicht übernommen. Neuregistrierung erforderlich!
4. Jeder Account wird erst von mir freigeschaltet. Ist wegen Spam leider erforderlich.
5. Ein Forum gibt es nicht mehr

Gruß Tommy

Home

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

Kommentar schreiben

Sicherheitscode
Aktualisieren

Login Form