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
