Custom Settings V2 für MS Access – mit IntelliSense und User-Settings
Einfach. Schnell. Erweiterbar. Intuitiv. Die neue Version (V2) der dynamischen Custom Settings glänzt mit voller IntelliSense-Unterstützung, Enum-basierter Bedienung und flexibler Erweiterbarkeit – für Frontend-, Backend- und individuelle User-Settings.
Ich präsentiere die neue Version (V2) der dynamischen Custom Settings – eine smarte Lösung mit voller IntelliSense-Unterstützung, intuitiver Bedienung und flexibler Erweiterbarkeit, ganz ohne zusätzlichen Code-Aufwand.
Was ist neu?
- IntelliSense in allen Settings-Aufrufen
- Enum-basierte Bedienung für Klarheit und Tippfehlerfreiheit
- Eigene Settings erstellen – ohne eine einzige Codezeile
- Read, Create, Change, Delete – alles integriert
- Frontend-, Backend- und User-Settings direkt unterstützt
- Neue Tabellen? Mit minimalem Aufwand integrierbar
Individuelle User-Einstellungen: Über die Tabelle tblUser speichert jeder Nutzer eigene Werte – z. B. zuletzt geöffnete Ansicht, Benutzerfarbe oder Standard-Suchfilter. Beim Aufruf einfach die UserID mitgeben, fertig.
Wie funktioniert’s?
Die Grundlage bilden drei Tabellen und drei Module.
Die Tabellen:
tblFrontend– Einstellungen für das Frontend (client-spezifisch)tblBackend– globale Einstellungen (für alle Nutzer)tblUser– individuelle User-Settings
Die Module:
modHelper_Settings– alle Funktionen:settingCreate,settingRead,settingChange,settingDeletemodHelper_Enumeration– verwaltet die Enums (für IntelliSense), inkl. dynamischem Hinzufügen/Umbenennen/Löschen zur LaufzeitmodHelper_SQL– liefert mitcSQL()sichere, typkonforme SQL-Strings
Speicherung, Typen und IntelliSense
Alle Einstellungen werden intern als String gespeichert. Beim Abruf mit settingRead erfolgt automatisch die Typkonvertierung in den ursprünglich definierten Datentyp – die Typinformation steht in der Spalte SettingType.
Dank der Enums (EnumSettingName, EnumTable, EnumDataType) steht für jeden Aufruf IntelliSense bereit. Du gibst nur den Enum-Wert an – der Rest wird automatisch korrekt zugeordnet, ohne Nachschlagen und ohne Tippfehler.
Beispiele
Erstellen (die Bezeichnung wird als String übergeben, settingCreate legt daraus den Enum-Eintrag an):
settingCreate "Theme", dtString, "Dark", tblFrontend
settingCreate "Items", dtInteger, 22, tblFrontend
Ändern, lesen, löschen:
settingChange Theme, dtString, "Light", tblFrontend
settingChange Items, dtLong, 444444, tblFrontend
Debug.Print settingRead(Theme, tblFrontend)
Debug.Print settingRead(Items, tblFrontend)
settingDelete Theme, tblFrontend
settingDelete Items, tblFrontend
User-Settings (mit UserID als letztem Parameter):
settingCreate "Active", dtBoolean, True, tblUser, 1
settingChange Active, dtBoolean, False, tblUser, 1
Debug.Print settingRead(Active, tblUser, 1)
settingDelete Active, tblUser, 1
Neue Tabellen hinzufügen
- Neue Tabelle anlegen (einfach eine vorhandene kopieren), z. B.
tblInvoiceSettings - Enum-Eintrag in
enumTablehinzufügen - Funktion
GetTableName()anpassen
Alle Funktionen (Create, Read, Change, Delete) laufen ohne weiteren Code – du erweiterst modular, ganz ohne Eingriff in den Kerncode.
Vorteile und Grenzen
- Blitzschnell einsatzbereit, kein hartcodiertes SQL mehr
- IntelliSense verhindert Fehler bei Namen und Typen
- Settings je nach Anwendungsbereich (Frontend, Backend, User)
Achtung: Wird ein Enum gelöscht, aber im Code weiterhin verwendet (z. B. in settingRead, settingChange, settingDelete), führt das beim Kompilieren zu einem Fehler. Das ist zugleich ein guter Sicherheitsmechanismus: veraltete Settings-Aufrufe werden sofort sichtbar und korrigierbar.
Fazit
Diese neue Version der Custom Settings mit IntelliSense ist ein großer Schritt Richtung professioneller, wartbarer und moderner Access-Entwicklung: keine kryptischen SQLs, keine Fehler durch Namen. Einmal integriert – nie wieder darauf verzichten. Die ausführliche Beschreibung findest du wie gewohnt gut dokumentiert direkt im Code.
Download
Dynamische Custom Settings V2 für MS Access – Enum-basiert mit IntelliSense, für Frontend, Backend und individuelle User-Settings, ohne hartcodiertes SQL.




