Custom build dialogs

Schluss mit langweiligen Standarddialogen – Zeit für Custom Build Dialogs!

Wer mit ACCESS arbeitet, kennt sie nur zu gut: MsgBox und InputBox. Funktional? Ja. Modern, ansprechend oder benutzerfreundlich? Leider nein. Diese Standarddialoge wirken – sagen wir mal – etwas in die Jahre gekommen. Und wenn wir ehrlich sind: Wer liest diese Standardmeldungen eigentlich noch aufmerksam? Meistens wird einfach auf „OK“ geklickt, ohne auch nur einen Blick zu riskieren.

Doch was wäre, wenn wir das ändern könnten?

In meinem neuesten Projekt zeige ich euch drei maßgeschneiderte Dialoge, die ACCESS einen ordentlichen Frischekick verpassen. Warum? Weil modern Nutzer mehr erwarten – und weil ACCESS es verdient hat!  

Das Problem: Was alt aussieht – kann ja nicht gut sein. Das sollten wir ändern.

 

Warum eigene Dialoge?

Die Standarddialoge können vieles nicht:

❌ Tabellen anzeigen
❌ Bilder einbinden
❌ Farbige, formatierte Texte
❌ Webseiten einbetten
❌ Eigene Icons nutzen
❌ Dialoge drucken
❌ Daten aus einer Liste auswählen
❌Automatisches schließen

Und genau hier setzen meine Custom Dialogs an!


Die drei Stars der Show:

  1. eMsgBox – der moderne Ersatz für MsgBox
  2. eInputBox – endlich benutzerfreundliche Eingaben
  3. eComboBox – das Extra, das Access bisher gefehlt hat

Die eComboBox ist besonders spannend: Eine Art InputBox – aber mit einer ComboBox! Und das Beste: Die Werte können per Werteliste oder SQL-Statement übergeben werden. Super flexibel!


💡 Nice to know:

Die Custom Notifications, die ich euch im letzten Artikel vorgestellt habe, lassen sich nahtlos integrieren. So bekommt ihr 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, um großartige Ergebnisse zu erzielen. Du kannst aber auch einfach nur Text verwenden.

✨ Viele Möglichkeiten der Anpassung
Bis zu 6 Buttons, Größe kann eingestellt werden, automatisches ausblenden nach X Sekunden, drucken des Dialogs, einfaches hinzufügen oder anpassen von Dialogtypen!

✨ Templates statt endlos Code tippen
Die HTML-Designs liegen als Templates in einer Tabelle – mit Platzhaltern, die zur Laufzeit durch Inhalte ersetzt werden. Zack – Dialog fertig!

✨ IntelliSense inklusive
Alle Dialoge sind so aufgebaut, dass man sie bequem per IntelliSense aufrufen kann. Keine ständige Suche nach Optionen – einfach loslegen!

 

Anpassen von Dialogtypen

Die Dialogtypen sind als Enumeration in der modDLG_Dialogs sowie in der tblDLG_Dialogs eingetragen. In der Tabelle können die Farben und das Icon angepasst werden. Wenn du ein neuer Dialogtyp erstellen willst, musst du nur einfach einen weiteren Eintrag in der Tabelle machen, sowie den Namen des Dialoges als Enumeration eintragen. Das war es auch schon!


Ein paar Beispiele?


MessageBox:

 
   
Kurzaufruf per command
myMsgBox "Header", "This ist he 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" & _

          "It could be a table, a picture or whatever." & _

          "<a href='https://www .xxx.com' target='_blank'><img src=" & img & width='150'></a>"

With msgDialog

.msgBoxTyp = eMsgBox

.msgArt = dlgType_Info

.msgHeader = "INFORMATION”

.msgBody = msgBody

.msgButton1 = "OK"

.msgButton2 = "Cancel"

.msgButton3 = "Another button" ' 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 succesfull"

   .msgTemplDummy2 = "sFilePath"

   .startMyBox

 End With


InputBox:

 
   
Kurzaufruf per command
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" ' 3 Buttons möglich

   .msgDefaultValue = "Vorgabe Eintrag"

.startMyBox

msgButtonClicked = .msgButtonClicked

msgValue = .msgReturnValue

End With

 
   
Als Template:

Ziemlich gleich wie bei der MessageBox


ComboBox:

 
   
Kurzaufruf per command
Ziemlich gleich wie bei der InputBox

 

   
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"

   ' OR

   .msgComboValue = "SELECT dlg_name, dlg_colorBackground FROM tblDLG_Dialogs ORDER BY dlg_name"   

   .msgComboColumns = "5cm;0cm"

.startMyBox

msgButtonClicked = .msgButtonClicked

msgValue = .msgReturnValue

End With

 
   
Als Template:

Ziemlich gleich wie bei der MessageBox


Und jetzt seid ihr dran!

Lasst uns gemeinsam ACCESS auf das nächste Level bringen. Denn eins ist klar:

Standard war gestern. Heute, wird ACCESS sexy. 🔥




Mit dieser kleinen Erweiterung wird euer Access-Interface nicht nur intuitiver, sondern auch ein ganzes Stück „sexier“.

Die ausführliche Beschreibung und alle Hinweise findet ihr direkt im Code – wie gewohnt gut dokumentiert.


   DOWNLOAD  


Wenn du es hilfreich findest und seinen Wert anerkennst, würde ich mich über eine kleine Spende freuen, die den Aufwand und den Nutzen widerspiegelt, den es dir bietet. PayPal Eine kleine Spende