Einstellungen in MS Access speichern – direkt in Tabellen, mit IntelliSense

Benutzerdefinierte Einstellungen in Access speichern – ohne INI-Dateien und ohne Registry. Diese Lösung legt Settings direkt in Tabellen ab und verwaltet sie mit einzeiligen VBA-Befehlen, die sogar IntelliSense unterstützen.

MS-Access-Datenbanken sind für ihre Flexibilität bekannt. Doch oft stellt sich die Frage, wie man benutzerdefinierte Einstellungen am besten speichert. Klassische Methoden wie externe INI-Dateien oder die Windows-Registry haben ihre Vor- und Nachteile. Hier stelle ich eine elegante Lösung vor, um Einstellungen direkt in Access-Tabellen zu speichern, abzurufen, zu ändern und zu löschen.

Vergiss umständliche Recordset-Abfragen: Mit einfachen VBA-Funktionen, die sogar IntelliSense unterstützen, verwaltest du Einstellungen mit nur einer Zeile Code. Das Beispiel speichert Settings im Frontend und Backend – lässt sich aber leicht auf weitere Tabellen erweitern, etwa eine User-Settings-Tabelle im Benutzerprofil.

Warum dieser Ansatz?

  • Einfachheit: kurze, intuitive Befehle – keine komplexen Recordset-Operationen.
  • IntelliSense-Unterstützung: schnellere und fehlerfreie Codeeingabe.
  • Effizienz: schnelles Lesen und Schreiben von Einstellungen.

Was wird benötigt?

  • tblSettingsFE, tblSettingsBE
  • modSettings
  • clsSettings

Die Tabellen

Die beiden Tabellen werden wie folgt aufgebaut:

Abbildung 2: Aufbau der Settings-Tabellen.

Das Modul modSettings

' DECLARATIONS ---------------------------------------------------------------
Private Const settingsBE As String = "tblSettingsBE"   ' Tabelle für die Backend-Settings
Private Const settingsFE As String = "tblSettingsFE"   ' Tabelle für die Frontend-Settings
'-----------------------------------------------------------------------------

' ENUMERATIONS ---------------------------------------------------------------
' Alle Setting-Namen hier eintragen (IntelliSense)
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 – nötig, damit IntelliSense funktioniert. In die Tabellen musst du sie nicht eintragen; das erledigt die Funktion newSetting(). So kannst du neue Einstellungen direkt aus der VBE erzeugen, ohne sie händisch im Backend anzulegen (praktisch, wenn du keinen Zugriff auf das Backend eines Kunden hast).

Die Werte werden als String gespeichert; der Felddatentyp wird beim Erstellen mit newSetting() angegeben. Beim Abruf wird der String anhand dieses Typs korrekt konvertiert.

Frontend oder Backend? Die Nummer in der Enumeration steuert die Zieltabelle: bis 99 = Frontend, ab 100 = Backend. Eine kleine Hilfsfunktion wertet das aus – genau hier setzt du auch an, um weitere Settings-Tabellen einzubinden.

Die Befehle

' Neue Einstellung im Frontend erstellen
newSetting f_BackendPath, "D:\backend", eString

' Einstellung im Frontend ändern
setSetting f_BackendPath, "E:\backend"

' Einstellung aus dem Backend auslesen
Debug.Print getSetting(b_BackupPath)

' Einstellung aus dem Backend löschen
delSetting b_ProjectName

Die ausführliche Beschreibung und alle Hinweise findest du wie gewohnt gut dokumentiert direkt im Code.

Download

Benutzerdefinierte Einstellungen in MS Access direkt in Tabellen speichern, lesen, ändern und löschen – mit einzeiligen VBA-Funktionen und IntelliSense, für Frontend und Backend.

Newsletter

Newsletter