INI File Toolbox für MS Access – 13 Funktionen fürs Konfigurationsmanagement

Wo speichert man Einstellungen, Konfigurationen und Pfade am sinnvollsten? Oft in der Datenbank – aber ganz ohne externe Dateien kommt man nicht aus. Diese VBA-Toolbox deckt mit 13 Funktionen alles rund um INI-Dateien ab: update-sicher, robust, portabel und ganz ohne Abhängigkeiten.

Als Access-Entwickler begegnet uns immer dieselbe Frage: Wo speichere ich Benutzereinstellungen, Konfigurationen und Pfade am sinnvollsten? Die naheliegende Antwort ist die Datenbank selbst – und das funktioniert oft hervorragend. Doch ganz ohne externe Dateien kommt man in der Praxis nicht aus.

Warum zusätzlich eine INI-Datei?

Ich trenne meine Anwendungen in Frontend und Backend. Im Frontend liegt eine Settings-Tabelle mit dem Pfad zum Backend. Der Knackpunkt: Sobald ich ein Frontend-Update ausrolle, ist die interne Settings-Tabelle wieder leer – der Pfad wäre weg. Deshalb speichere ich den Backend-Pfad zusätzlich extern in einer kleinen INI-Datei. Für die Nutzer heißt das: keine erneuten Dialoge, keine Verwirrung, einfach weiterarbeiten.

INI ist ein simples, robustes Format, das seit Jahrzehnten zuverlässig tut, was es soll. Manchmal ist nicht „entweder/oder” die beste Wahl, sondern die clevere Kombination beider Welten.

Der Game-Changer: Updates ohne Datenverlust

Mein bewährter Start-Workflow:

  1. Frontend startet
  2. Backend-Pfad in der Frontend-Tabelle prĂĽfen
  3. Pfad ungültig? → INI-Datei lesen
  4. INI gefunden? → Backend automatisch verbinden
  5. Keine INI? → File-Dialog (nur beim ersten Start), Pfad im FE und in der INI speichern
  6. Vorhandene Tabellenverknüpfungen löschen
  7. Alle Backend-Tabellen neu verknĂĽpfen (immer auf dem aktuellen Stand)

Nach einem Update startet die Anwendung sofort mit den gespeicherten Einstellungen – keine nervigen Dialoge, kein Supportaufwand.

Die 13 Funktionen der Toolbox

1. INI_ReadValue – Werte auslesen. Die Basis-Funktion zum Lesen von Konfigurationswerten.

strBackendPath = INI_ReadValue(strIniPath, "Database", "BackendPath", "")

2. INI_WriteValue – Werte schreiben/aktualisieren. Erstellt Datei und Sektion automatisch, falls nicht vorhanden.

INI_WriteValue strIniPath, "Database", "BackendPath", strSelectedPath

3. INI_PrintAll – komplette Datei ausgeben. Zeigt den gesamten Inhalt formatiert im Direktfenster – perfekt zum Debuggen.

INI_PrintAll CurrentProject.Path & "\config.ini"

4. INI_GetSections – alle Sektionen auflisten. Gibt eine Collection aller Sektionen zurück.

Set colSections = INI_GetSections(strIniPath)
For Each varSection In colSections
    Debug.Print "Gefundene Sektion: " & varSection
Next

5. INI_GetKeys – alle Keys einer Sektion. Ideal für die dynamische Verarbeitung aller Einstellungen.

Set colKeys = INI_GetKeys(strIniPath, "Database")
For Each varKey In colKeys
    Debug.Print varKey & " = " & INI_ReadValue(strIniPath, "Database", CStr(varKey))
Next

6. INI_DeleteSection – ganze Sektion löschen.

If INI_SectionExists(strIniPath, "OldModule") Then
    INI_DeleteSection strIniPath, "OldModule"
End If

7. INI_DeleteKey – einzelnen Key löschen.

INI_DeleteKey strIniPath, "Session", "TempPassword"

8. INI_SectionExists – Sektion prüfen.

If Not INI_SectionExists(strIniPath, "DatabaseV2") Then
    ' Sektion anlegen ...
End If

9. INI_KeyExists – Key prüfen.

If Not INI_KeyExists(strIniPath, "Features", "AutoBackup") Then
    INI_WriteValue strIniPath, "Features", "AutoBackup", "True"
End If

10. INI_PrintStructured – strukturierte Ausgabe. Zeigt die INI hierarchisch – ideal für die Dokumentation.

INI_PrintStructured strIniPath

11. INI_GetAllValues – Dictionary aller Werte. Holt alle Key-Value-Paare einer Sektion als Dictionary.

Set dictDB = INI_GetAllValues(strIniPath, "Database")
Debug.Print "Server: " & dictDB("Server")
Debug.Print "Port: " & dictDB("Port")
Debug.Print "Timeout: " & dictDB("Timeout")

12. INI_ValidateFormat – Format validieren. Prüft die Datei auf fehlende Klammern, doppelte Keys und ungültige Syntax.

If Not INI_ValidateFormat(strImportedIniPath) Then
    MsgBox "Die importierte Konfiguration ist fehlerhaft!", vbCritical
End If

Geprüft wird u. a.: Datei existiert und ist lesbar · Sektionen korrekt formatiert [SectionName] · keine doppelten Sektionen · keine doppelten Keys je Sektion · Key-Value-Paare enthalten = · keine überlangen Zeilen (> 1000 Zeichen).

13. INI_Compare – zwei INI-Dateien vergleichen. Der Hammer für Versionierung und Migrations-Management.

If Not INI_Compare(strOldConfig, strNewConfig) Then
    Debug.Print "Änderungen erkannt - Details im Direktfenster"
    ' zeigt: neue/entfernte Sektionen, geänderte Werte, neue/gelöschte Keys
End If

Perfekt für Versions-Vergleiche nach Updates, Fehlersuche, Änderungs-Dokumentation und Warnungen bei kritischen Abweichungen.

Real-World-Beispiele

Multi-Backend-UnterstĂĽtzung:

INI_WriteValue strIniPath, "Backends", "Production", "\\Server\DB\Prod.accdb"
INI_WriteValue strIniPath, "Backends", "Test", "\\Server\DB\Test.accdb"
INI_WriteValue strIniPath, "Backends", "Development", "C:\Dev\DB.accdb"
INI_WriteValue strIniPath, "Settings", "CurrentEnvironment", "Production"

User-spezifische Einstellungen:

INI_WriteValue strIniPath, "UI", "Language", "DE"
INI_WriteValue strIniPath, "UI", "Theme", "Dark"
INI_WriteValue strIniPath, "UI", "FontSize", "12"
INI_WriteValue strIniPath, "Export", "DefaultFolder", "C:\Users\Marcus\Exports"

Die Vorteile auf einen Blick

  • Update-sicher: Die INI bleibt bei Frontend-Updates erhalten.
  • User-freundlich: keine wiederholten Eingaben nach Updates.
  • Robust: Windows-API, seit Jahrzehnten bewährt.
  • Portabel: einfache Textdateien, ĂĽberall einsetzbar.
  • Debuggbar: direkt im Editor öffnen und prĂĽfen.
  • 32/64-Bit und ohne Abhängigkeiten – nur Windows-API, keine Verweise nötig.

Ausblick: In einem kommenden Artikel zeige ich ein Tool für automatische Backend-Verbindungen beim Start – mit mehreren Backends, Fallback-Strategien und Error-Handling. Die INI-Dateien sind die perfekte Grundlage dafür.

Einfach ausprobieren

Ăśber die mitgelieferte Testing-Form probierst du die Funktionen direkt aus und lernst sie Schritt fĂĽr Schritt kennen. Die ausfĂĽhrliche Beschreibung findest du wie gewohnt gut dokumentiert direkt im Code.

Download

Eine VBA-Toolbox für MS Access mit 13 Funktionen für INI-Dateien: lesen, schreiben, Sektionen/Keys verwalten, validieren und vergleichen – update-sicher, robust und ohne Abhängigkeiten.