Ziel: Ănderungen nachvollziehen, sauber verteilen, Chaos vermeiden
Access hat kein eingebautes Git.
Kein Branching, kein Diff, keine Historie.
Aber Du kannst trotzdem versionieren â mit Disziplin, Tools und ein bisschen VBA.
Variante 1: Frontend und Backend trennen
Das ist die Grundregel.
Daten.accdb
= Backend mit TabellenApp_v1_2_3.accdb
= Frontend mit Formularen, Code, Berichten
Nie alles in einer Datei lassen.
Frontend darf verteilt, ersetzt und aktualisiert werden.
Backend bleibt auf dem Server.
Variante 2: Manuelle Versionierung im Startformular
Const APP_VERSION As String = "v1.2.3"
Private Sub Form_Load()
Me.lblVersion.Caption = "Version: " & APP_VERSION
End Sub
Oder in Tabelle tblVersion
speichern:
Public Function AktuelleVersion() As String
AktuelleVersion = DLookup("Version", "tblVersion")
End Function
So siehst Du gleich, was der Benutzer geöffnet hat.
Variante 3: Ănderungslog fĂŒhren
Tabelle tblChangelog
:
Version
Datum
Modul
Ănderung
GeÀndertVon
Beim Deployment pflegen:
INSERT INTO tblChangelog VALUES ("1.2.4", #01.06.2025#, "frmKunden", "Fehlermeldung verbessert", "JS")
So siehst Du spÀter, wer wann was warum geÀndert hat.
Variante 4: Export nach Text fĂŒr Git
Mit SaveAsText
und LoadFromText
kannst Du Objekte als Textdateien speichern â und versionieren.
Application.SaveAsText acForm, "frmKunden", "C:\AccessRepo\Forms\frmKunden.txt"
Application.LoadFromText acForm, "frmKunden", "C:\AccessRepo\Forms\frmKunden.txt"
Das geht auch fĂŒr:
- Tabellenstrukturen
- Module
- Makros
- Berichte
đ Danach mit Git, SVN oder anderen Tools versionieren.
Am besten automatisieren (z.âŻB. mit Batch oder PowerShell).
Variante 5: Build-Nummer automatisch erhöhen
Tabelle tblVersion
mit Feld Build
Public Sub ErhöheBuildnummer()
Dim sql As String
sql = "UPDATE tblVersion SET Build = Build + 1"
CurrentDb.Execute sql, dbFailOnError
End Sub
Beim Start oder vor Release einmal aufrufen.
Gibt Dir eindeutige Identifikation.
Variante 6: Verteilen ĂŒber Copy + Netzlaufwerk
Wenn Du keine Update-Infrastruktur hast:
Frontend auf Netzlaufwerk â User holt sich Kopie.
If Dir("C:\MyApp\frontend.accdb") <> Dir("\\srv01\AccessApp\aktuelles.accdb") Then
FileCopy "\\srv01\AccessApp\aktuelles.accdb", "C:\MyApp\frontend.accdb"
End If
Optional mit HashprĂŒfung (MD5/SHA256).
Variante 7: Auto-Update-Skript
Shell "cmd /c xcopy \\srv01\AccessApp\aktuelles.accdb C:\MyApp\ /Y", vbHide
Oder mit Updater-Tool wie FEUpdater oder eigenem Mini-Launcher.
Variante 8: Source Code auslesen
FĂŒr VBA-Code einzelner Module:
Dim mdl As Object
Set mdl = Application.VBE.ActiveVBProject.VBComponents("modTools")
Debug.Print mdl.CodeModule.Lines(1, mdl.CodeModule.CountOfLines)
Dann per Export speichern, vergleichen, dokumentieren.
Variante 9: Dev-Umgebung von Produktivumgebung trennen
Nie in der Live-Datei entwickeln.
Arbeite lokal â teste â exportiere â deploye sauber.
Best Practices
- Versionsnummer im Titel, Label oder Splash anzeigen
- Changelog fĂŒhren
- VBA-Module versionieren (SaveAsText oder manuell)
- Export automatisieren
- Deployment strukturieren â kein âZiehen und Ablegenâ
- Zugriff auf alte Versionen sichern (z.âŻB. ZIP-Archiv pro Release)
Fazit fĂŒr Entwickler
Access ist kein Git â aber Du kannst versionieren, wenn Du willst.
Mit Text-Export, klaren Regeln und etwas Automatisierung behĂ€ltst Du den Ăberblick.
Keine Antworten