Custom Dialogs für MS Access: eMsgBox, eInputBox & eComboBox
Schluss mit langweiligen Standarddialogen: drei maßgeschneiderte Dialoge, die MsgBox und InputBox modern, flexibel und benutzerfreundlich ersetzen – mit HTML-Body, Vorlagen und IntelliSense.
Wer mit Access arbeitet, kennt sie nur zu gut: MsgBox und InputBox. Funktional? Ja. Modern, ansprechend oder benutzerfreundlich? Leider nein. Meist wird ohnehin nur auf „OK” geklickt, ohne die Meldung zu lesen. Zeit, das zu ändern.
In diesem Projekt zeige ich dir drei maßgeschneiderte Dialoge, die Access einen ordentlichen Frischekick verpassen – denn moderne Nutzer erwarten mehr.
Warum eigene Dialoge?
Die Standarddialoge können vieles nicht. Meine Custom Dialogs schon:
- Tabellen anzeigen
- Bilder einbinden
- farbige, formatierte Texte
- Webseiten einbetten
- eigene Icons nutzen
- Dialoge drucken
- Daten aus einer Liste auswählen
- automatisches Schließen
Die drei Stars der Show
- eMsgBox – der moderne Ersatz für MsgBox
- eInputBox – endlich benutzerfreundliche Eingaben
- eComboBox – das Extra, das Access bisher gefehlt hat
Die eComboBox ist besonders spannend: eine Art InputBox – aber mit ComboBox. Die Werte lassen sich per Werteliste oder SQL-Statement übergeben. Super flexibel.
Nice to know: Die Custom Notifications aus dem letzten Artikel lassen sich nahtlos integrieren – so entsteht ein konsistentes, modernes UI-Konzept von der kleinen Notification bis zum interaktiven Dialog.
Highlights auf einen Blick
- Webbrowser-Steuerelement als Body: HTML im Dialogfenster – klingt komplex, ist es aber nicht. Schon einfache Grundkenntnisse reichen; reiner Text geht natürlich auch.
- Viele Anpassungen: bis zu 6 Buttons, einstellbare Größe, automatisches Ausblenden nach X Sekunden, Drucken, einfaches Hinzufügen/Anpassen von Dialogtypen.
- Templates statt endlos Code: Die HTML-Designs liegen als Vorlagen in einer Tabelle – mit Platzhaltern, die zur Laufzeit durch Inhalte ersetzt werden.
- IntelliSense inklusive: Alle Dialoge lassen sich bequem per IntelliSense aufrufen – kein ständiges Suchen nach Optionen.
Dialogtypen anpassen
Die Dialogtypen sind als Enumeration in modDLG_Dialogs sowie in der Tabelle tblDLG_Dialogs hinterlegt. In der Tabelle lassen sich Farben und Icon anpassen.
Neuen Dialogtyp anlegen: einfach einen weiteren Eintrag in tblDLG_Dialogs machen und den Namen als Enumeration eintragen – fertig.
Beispiele
MessageBox
Kurzaufruf per Kommando:
myMsgBox "Header", "This is the body text", dlgType_Info, "OK", "Cancel" Aufruf als Objekt mit allen Optionen:
msgBody = "textHead(Header of the body)" & _
"This text in here is HTML. " & _
"So it can be much more than only text – " & _
"a table, a picture or whatever." & _
"<a href='https://www.example.com' target='_blank'>" & _
"<img src='https://www.dieterle-programmierung.de/img/logo.png' width='150'></a>"
With msgDialog
.msgBoxTyp = eMsgBox
.msgArt = dlgType_Info
.msgHeader = "INFORMATION"
.msgBody = msgBody
.msgButton1 = "OK"
.msgButton2 = "Cancel"
.msgButton3 = "Another button" ' bis zu 6 Buttons möglich
.msgButtonPrint = True
.msgSecToClose = 20
.msgBodyHeight = 4000
.msgBodyWidth = 10000
.startMyBox
msgButtonClicked = .msgButtonClicked
End With Als Template:
With msgDialog
.msgBoxTyp = eMsgBoxTemplate
.msgTemplate = "PDFsavedSuccesfull"
.msgTemplDummy1 = "Your report was saved as PDF successfully"
.msgTemplDummy2 = "sFilePath"
.startMyBox
End With InputBox
Kurzaufruf per Kommando:
var = myInputBox("QUESTION", "Please enter a value.", dlgType_Question, "Default value", "OK") Aufruf als Objekt mit allen Optionen:
msgBody = "textHead(Header of the body)" & _
"This text in here is HTML."
With msgDialog
.msgBoxTyp = eInputBox
.msgArt = dlgType_Question
.msgHeader = "QUESTION"
.msgBody = msgBody
.msgButton1 = "OK"
.msgButton2 = "Cancel" ' bis zu 3 Buttons möglich
.msgDefaultValue = "Vorgabe Eintrag"
.startMyBox
msgButtonClicked = .msgButtonClicked
msgValue = .msgReturnValue
End With Als Template funktioniert es analog zur MessageBox.
ComboBox
Aufruf als Objekt mit allen Optionen:
msgBody = "textHead(Header of the body)" & _
"This text in here is HTML."
With msgDialog
.msgBoxTyp = eComboBox
.msgArt = dlgType_Question
.msgHeader = "QUESTION"
.msgBody = msgBody
.msgButton1 = "OK"
.msgButton2 = "Cancel"
.msgComboValue = "1;2;3;4"
' ODER per SQL:
.msgComboValue = "SELECT dlg_name, dlg_colorBackground FROM tblDLG_Dialogs ORDER BY dlg_name"
.msgComboColumns = "5cm;0cm"
.startMyBox
msgButtonClicked = .msgButtonClicked
msgValue = .msgReturnValue
End With Kurzaufruf und Template funktionieren analog zur InputBox bzw. MessageBox.
Und jetzt bist du dran
Lass uns Access gemeinsam auf das nächste Level bringen. Standard war gestern. Mit dieser Erweiterung wird dein Access-Interface intuitiver – und ein gutes Stück „sexier”. Die ausführliche Beschreibung und alle Hinweise findest du wie gewohnt gut dokumentiert direkt im Code.
Download
Drei Custom Dialogs für MS Access (eMsgBox, eInputBox, eComboBox) – mit HTML-Body, Vorlagen, bis zu 6 Buttons und IntelliSense.




