VBA Tipp: Aktuelle MDB sichern

Aus DBWiki
Wechseln zu: Navigation, Suche

Aufgabenstellung

Ich möchte schnell und einfach meine Daten sichern, um ein Backup zu haben und ggf. auf ältere Versionen zurückgreifen können.

Lösung

Das geht mit folgender Sub-Prozedur, die in einem globalen Modul hinterlegt wird.

Public Sub SichereMich()
 
 'Wenn der Ordner "Backup" fehlt, wird er angelegt
 'Late Binding, kein Verweis auf die Microsoft Scripting Runtime notwendig
 'Quelle: www.dbwiki.net oder www.dbwiki.de
 
 Dim objFso As Object 'Scripting.FileSystemObject
 Dim Quelldatei As String
 Dim BackupPfad As String
 Dim DBName As String
 Dim Zieldatei As String
 Dim strJetzt As String
 
 Set objFso = CreateObject("Scripting.FileSystemObject")
 
 'Diese Datenbank kopieren (Quellpfad)
 Quelldatei = CurrentDb.Name
 
 'Zielpfad
 BackupPfad = CurrentProject.Path & "\Backup\"
 
 'Datenbankname ohne Erweiterung
 DBName = Left(CurrentProject.Name, InStr(CurrentProject.Name, ".") - 1)
 
 On Error Resume Next
 objFso.CreateFolder BackupPfad
 On Error GoTo 0
 
 'Aktuelles Datum und Zeit in Backup-Name (Genaue Zeit)
 strJetzt = Format(Now, "yyyymmdd_hhnnss")
 ' Alternativ: Aktuelles Datum in Backup-Name (Nur Datum)
 ' strJetzt=Format(Date, "yyyymmdd")
 
 Zieldatei = BackupPfad & DBName & "_" & strJetzt & ".mdb"
 
 'und jetzt kopieren:
 objFso.CopyFile Quelldatei, Zieldatei, True
 
 Set objFso = Nothing
 
End Sub

Aufruf

Call SichereMich


Wiki hinweis.png Tipp: Um ein automatisches Speichern beim Schließen der Datenbank zu erreichen, einfach ein zusätzliches Formular mit Status acHidden beim Starten laden (siehe auch Beispiel-Datenbank "Protokoll"). Dann beim Entladen dieses Dummy-Formulars einfach die Funktion aufrufen.


Wiki hinweis.png

Hinweis:

  • Die Datenbank wird auch kopiert / gesichert, wenn sie geöffnet ist.
  • Ob die Sicherung einer Datenbank, die geöffnet ist, sinnvoll ist, mag jeder selbst entscheiden. Wenn gerade Daten geschrieben / gelöscht / verändert werden, sichert man sich eventuell eine kaputte Datenbank, und erfährt nichts davon.


Wiki-Links

Web-Links