Access ist schnell gebaut.
Aber wehe, die Datei ist weg. Oder kaputt. Dann ist Holland in Not.
Ich zeig Dir hier, wie Du Deine Access-Datenbank sicherst, wiederherstellst und im Alltag schĂŒtzt â pragmatisch, automatisiert und robust genug fĂŒr den KMU-Alltag.
Was musst Du sichern?
Access heiĂt fast immer: Split-Datenbank.
Du hast also:
- Frontend (.accde oder .accdb)
EnthÀlt Formulare, Berichte, VBA, Makros - Backend (.accdb)
EnthÀlt Tabellen und Daten
Wichtig:
Nur das Backend enthÀlt Daten.
Deshalb ist das Backend Deine Sicherungs-PrioritÀt.
Noch besser: SQL Server als Backend.
Wann sichern?
Mindestens:
- TĂ€glich automatisch
- Vor jedem Deployment
- Vor gröĂeren Imports oder Löschaktionen
Optional auch:
- Bei Benutzer-Login (Mini-Backup)
- Bei SchlieĂen der Anwendung
Backup per VBA automatisieren
Beispiel: Einfaches File-Backup
Public Sub BackupDatenbank()
Dim fs As Object
Dim Quelle As String
Dim Ziel As String
Quelle = "\\Server\Daten\MeineDB_be.accdb"
Ziel = "\\Server\Sicherung\MeineDB_be_" & Format(Now, "yyyymmdd_hhnnss") & ".accdb"
Set fs = CreateObject("Scripting.FileSystemObject")
fs.CopyFile Quelle, Ziel, True
Debug.Print "Backup erstellt: " & Ziel
End Sub
LĂ€uft sauber, wenn der Benutzer keine exklusive Sperre hat.
Kannst Du z.âŻB. beim Ăffnen im Hintergrund ausfĂŒhren.
Komprimieren und reparieren (vor dem Backup)
Access blÀht sich gern auf.
RegelmĂ€Ăiges Komprimieren verbessert StabilitĂ€t.
Public Sub KomprimiereDatenbank()
Dim j As Object
Set j = CreateObject("JRO.JetEngine")
Dim Quelle As String
Dim Ziel As String
Quelle = "\\Server\Daten\MeineDB_be.accdb"
Ziel = "\\Server\Temp\TempDB.accdb"
j.CompactDatabase "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Quelle, _
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Ziel
Kill Quelle
FileCopy Ziel, Quelle
Kill Ziel
End Sub
Achtung:
Nur ausfĂŒhren, wenn niemand sonst die DB geöffnet hat. Sonst knalltâs.
Wiederherstellung â schnell und gezielt
Im Ernstfall brauchst Du:
- Letztes vollstÀndiges Backup
- Optional: Letzter Log-Auszug (wenn vorhanden)
- Optionale SQL-Skripte fĂŒr differenzielle Wiederherstellung (z.âŻB. nach falschem Import)
Tipp:
Lege ein Recovery-Skript an, das die Datenbank aus dem Sicherungsordner kopiert und das Live-Backend ersetzt.
Public Sub RestoreBackup(ByVal Sicherungsdatei As String)
Dim Ziel As String
Ziel = "\\Server\Daten\MeineDB_be.accdb"
FileCopy Sicherungsdatei, Ziel
Debug.Print "Backup zurĂŒckgespielt: " & Sicherungsdatei
End Sub
Backup-Strategien in der Praxis
Manuelles Backup durch den Benutzer
Gibt Sicherheit. Aber: Meist vergessen.
Besser: Automatisieren.
Backup bei bestimmten Aktionen
Beispiel: Vor dem Monatsabschluss
If MsgBox("Backup vor Monatsabschluss erstellen?", vbYesNo) = vbYes Then
BackupDatenbank
End If
Sicherung ĂŒber Batch oder Task-Scheduler
FĂŒr Admins mit Zugriff auf das Dateisystem:
xcopy "\\Server\Daten\MeineDB_be.accdb" "\\Server\Sicherung\" /Y
Task per Windows-Taskplaner tÀglich um 22 Uhr.
LĂ€uft ohne VBA â Backup auch bei geschlossener Anwendung.
Pro-Tipp: Versionierung und Sicherungszyklen
Nicht einfach alles ĂŒberschreiben.
Nutze Zeitstempel im Dateinamen (yyyymmdd_hhnnss
).
Halte z.âŻB. 30 Versionen vor, dann alte löschen.
' Optional: Alte Sicherungen löschen, z.âŻB. Ă€lter als 30 Tage
Oder nutze externe Tools wie Robocopy oder Veeam â je nach IT-Infrastruktur.
Fazit
Access ist kein Hochsicherheits-System. Aber Du kannst viel tun:
- TĂ€gliches Backup per VBA oder Batch
- Versionierung der Sicherungen
- Komprimieren zur StabilitÀtsverbesserung
- Wiederherstellung vorbereiten (nicht improvisieren)
Lieber einmal 10 Minuten Backup-Routine schreiben
⊠als drei Tage nach der letzten Kundenrechnung suchen.
No responses yet