Custom build settings

Einleitung

MS Access-Datenbanken sind bekannt für ihre Flexibilität und Anpassungsfähigkeit. Doch oft stellt sich die Frage, wie man benutzerdefinierte Einstellungen am besten speichert. Klassische Methoden wie externe INI-Dateien oder die Windows-Registrierung haben ihre Vor- und Nachteile. In diesem Artikel stelle ich eine elegante und effiziente Lösung vor, um benutzerdefinierte Einstellungen direkt in Access-Tabellen zu speichern, abzurufen, zu ändern und zu löschen. Vergessen Sie umständliche Recordset-Abfragen! Mit diesen einfachen VBA-Funktionen, die sogar IntelliSense unterstützen, können Sie Einstellungen mit nur einer Zeile Code verwalten. Das hier vorgestellte Beispiel speichert jeweils Einstellungen im Frontend und Backend. Kann jedoch auch einfach auf weitere Tabellen erweitert werden. Zum Beispiel einer User-Settings-Tabelle die im Userprofil gespeichert ist.  


Warum dieser Ansatz?

  • Einfachheit: Kurze, intuitive Befehle erleichtern die Arbeit. Keine komplexen Recordset-Operationen erforderlich.
  • IntelliSense-Unterstützung: Schnellere und fehlerfreie Codeeingabe.
  • Effizienz: Schnelles Lesen und Schreiben von Einstellungen.

 

Was wird benötigt?

  • tblSettingsFE, tblSettingsBE.
  • modSettings
  • clsSettings


Tabellen:

Die jeweiligen Tabellen müssen folgendermaßen erstellt werden:   


Modul modSettings:

' DECLARATIONS ---------------------------------------------------------------------------
Private Const settingsBE As String = ‘tblSettingsBE’ ‘ table for the backend settings
Private Const settingsFE As String = ‘tblSettingsFE’ ‘ table for the frontend settings
'-----------------------------------------------------------------------------------------

' ENUMMERATIONS --------------------------------------------------------------------------
'
' Put all setting names in here (intelisense)
Public Enum eSettings
'Frontend Settings (1 - 99)
f_BackendPath = 1
f_Version = 2
f_Programmer = 3
...
'Backend Settings (100 - XXX)
b_BackupPath = 100
b_BackupDays = 101
b_ProjectName = 102
...
End Enum


Die Settings-Bezeichnungen werden in die Enumeration eSettings eingetragen. Dies ist notwendig, damit die Intelisense funktioniert. Es ist nicht notwendig diese Bezeichnungen ebenfalls in die Tabellen einzutragen. Dies wird durch die newSetting() Funktion gemacht. Vorteil, Ihr könnt so neue Einstellungen aus der VBE heraus erstellen ohne sie händisch im BE einzutragen. Vor allem wenn man kein Zugriff auf das Backend von einem Kunden hat. Die Settingswerte werden als String gespeichert, Zudem wird der Felddatentyp beim erstellen newSetting() mit angegeben. Beim abrufen der Einstellung wird dann anhand des Felddatentypes der String in den richtigen Typ konvertiert.  Anhand der zugewiesenen Nummer in der Enumeration kann man steuern auf welche Tabelle sich die Einstellung bezieht. Hierfür gibt es eine Hilfsfunktion die das erkennt. In diesem Beispiel verwenden wir die Nummern bis 99 für das Frontend und alles darüber für das Backend. Dies muss sich auch in der Hilfsfunktion widerspiegeln. Hier wäre auch der Ansatz um weitere Settingstabellen einzubinden.  


Eine neue Einstellung im Frontend erstellen:
newSetting f_ BackendPath, “D:\backend“, eString

 

Eine Einstellung im Frontend ändern:
setSetting f_ BackendPath, “E:\backend“

 

Eine Einstellung aus dem Backend auslesen:
Debug.Print getSetting(b_ BackupPath)

 

Eine Einstellung aus dem Backend löschen:
delSetting(b_ ProjectName)



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

   DOWNLOAD   
Version: 1.2

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