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.

Categories:

Tags:

No responses yet

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert