INI File Toolbox – komplette Lösung für Konfigurationsmanagement!

Warum INI-Dateien? Die unterschätzte Power für Access-Entwickler! 💪

Als Access-Entwickler begegnet uns immer wieder dieselbe Frage: Wo speichere ich eigentlich Benutzereinstellungen, Konfigurationen und Pfade am sinnvollsten?

Die naheliegende Antwort lautet: in der Datenbank selbst.

Und ja – das funktioniert in vielen Szenarien hervorragend. Aber in der Praxis zeigt sich schnell: Ganz ohne externe Dateien komme ich trotzdem nicht aus.

Ich trenne meine Anwendungen klassisch in Frontend und Backend. Im Frontend liegt eine Settings-Tabelle, in der ich den Pfad zum Backend sichere. Beim ersten Start ist dieser Pfad noch leer, also bekommt der User einen Dateidialog und wählt das Backend aus. Anschließend wird der Pfad gespeichert – bequem und zuverlässig, ohne jedes Mal neu verbinden zu müssen.

Soweit so gut. Warum also zusätzlich eine INI-Datei?

Der Knackpunkt: Sobald ich ein Update des Frontends ausrolle, ist die interne Settings-Tabelle wieder jungfräulich – der Pfad wäre weg. Also speichere ich den Backend-Pfad zusätzlich extern in einer kleinen INI-Datei. Für die Nutzer bedeutet das: Keine erneuten Dialoge, keine Verwirrung, einfach weiterarbeiten.

Und warum ausgerechnet INI?

Weil es ein simples, robustes Format ist, das seit Jahrzehnten zuverlässig tut, was es soll. Für Konfigurationen, die stabil bleiben sollen, ist es oft die pragmatischste Lösung.

 

Mein Fazit:

Manchmal ist nicht „entweder oder“ die beste Entscheidung, sondern die clevere Kombination aus beiden Welten.


🎯 Der Game-Changer: Updates ohne Datenverlust! 

Mein bewährter Start-Workflow in der Praxis 

1. Frontend startet
2. PrĂĽfe Backend-Pfad in Frontend-Tabelle
3. Pfad ungültig? → Lese INI-Datei
4. INI gefunden? → Verbinde Backend automatisch
5. Keine INI? → Zeige File-Dialog (nur beim ersten Start), speichere Pfad im FE und in der INI-Datei
6. Löschen der vorhandenen Tabellenverknüpfungen
7. Alle Backend Tabellen neu verknĂĽpfen (somit immer auf dem aktuellsten Backend Stand)

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

Ich werde irgendwann später noch einen Artikel über meine Frontend Startfunktion (Verknüpfung FE/BE, Lizenzprüfung, Ausblenden der Menüleiste, usw) veröffentlichen.

 

đź§° Die komplette INI File Toolbox – 13 Power-Funktionen! 

Ich habe eine umfassende VBA-Bibliothek entwickelt, die ALLES rund um INI-Dateien abdeckt. Nicht nur mein Used Case fĂĽr die Backendverbindung:


đź“– 1. INI_ReadValue - Werte auslesen

Die Basis-Funktion fĂĽr das Lesen von Konfigurationswerten.

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

​

✍️ 2. INI_WriteValue - Werte schreiben/aktualisieren

Speichert Werte in der INI-Datei. Erstellt automatisch Datei und Sektion, falls nicht vorhanden!

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

​

🖨️ 3. INI_PrintAll - Komplette Datei ausgeben

Zeigt den gesamten Inhalt formatiert im Immediate Window – perfekt für Debugging!

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

Perfekt fĂĽr 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

Entfernt einen kompletten Konfigurationsbereich.

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

​

❌ 7. INI_DeleteKey - Einzelnen Key löschen

Löscht spezifische Einstellungen.

INI_DeleteKey strIniPath, "Session", "TempPassword"

​

✔️ 8. INI_SectionExists - Sektion prüfen

PrĂĽft, ob ein Konfigurationsbereich existiert.

If Not INI_SectionExists(strIniPath, "DatabaseV2") Then …

​

âś… 9. INI_KeyExists - Key prĂĽfen

Checkt, ob ein spezifischer Wert vorhanden ist.

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 organisiert – ideal für Dokumentation!

INI_PrintStructured strIniPath

​

📦 11. INI_GetAllValues - Dictionary aller Werte

Holt alle Key-Value-Paare einer Sektion als Dictionary – super effizient!

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 INI-Datei auf Fehler: fehlende Klammern, doppelte Keys, ungĂĽltige Syntax.

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

Validation Checks:

  • âś“ Datei existiert und ist lesbar
  • âś“ Sektionen korrekt formatiert [SectionName]
  • âś“ Keine doppelten Sektionen
  • âś“ Keine doppelten Keys innerhalb einer 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 - siehe Details im Immediate Window"
     ' Zeigt detailliert:
     ' - Neue Sektionen
     ' - Entfernte Sektionen
     ' - Geänderte Werte
     ' - Neue/gelöschte Key
​End If

Perfekt fĂĽr:

  • 📊 Versions-Vergleich nach Updates
  • 🔍 Fehlersuche bei Konfigurationsproblemen
  • 📝 Dokumentation von Ă„nderungen
  • ⚠️ Warnung bei kritischen Abweichungen


🌍 Real-World Use Cases 

Use Case 1: 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"

Use Case 2: 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: 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: Funktioniert in allen Access-Versionen  
✅ Keine Abhängigkeiten: Nur Windows API, keine Referenzen nötig


đź”® Was kommt als Nächstes? 

In einem kommenden Artikel zeige ich euch ein Tool für automatische Backend-Verbindungen beim Start – mit Unterstützung für mehrere Backends gleichzeitig, Fallback-Strategien und Error-Handling. Die INI-Dateien sind die perfekte Grundlage dafür!


đź§Ş Einfach ausprobieren

Anhand meiner kleinen Testing-Form könnt ihr die Funktionen direkt ausprobieren. Das macht es einfach, die Funktionen Schritt für Schritt kennenzulernen .

Du entwickelst viel mit Access? Dann probier’s aus – ich freu mich auf dein Feedback oder Ideen für weitere Funktionen! 🚀



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


   DOWNLOAD  
Version: 1.0   26.11.2025

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