Hallo! Ich möchte ein tägliches Backup meiner Access-DB machen.
Folgendes habe ich in VBA eingegeben:
Private Sub Form_Open(Cancel As Integer)
DB_Sicher
End Sub
Public Function DB_Sicher()
Dim Quelldatei As String, Zieldatei As String, oFSO As FileSystemObject
Dim y As String, z As String
Dim intAttr As Integer
Quelldatei = CurrentProject.FullName
y = CurrentProject.Path
z = CurrentProject.Name
Zieldatei = y & "\accessbackups\" & Left(z, Len(z) - 4) & "_" & _
Year(Now) & "_" & Month(Now) & "_" & Day(Now) & ".mdb"
Set oFSO = CreateObject("Scripting.FileSystemObject")
If Dir(Zieldatei) <> "" Then
intAttr = GetAttr(Zieldatei)
If intAttr And vbReadOnly Then SetAttr Zieldatei, intAttr - vbReadOnly
oFSO.DeleteFile Zieldatei
End If
oFSO.CopyFile Quelldatei, Zieldatei, True
SetAttr Zieldatei, vbReadOnly
MsgBox "Es wurde eine Sicherheitskopie unter " & Zieldatei & " erstellt"
End Function
Eigentlich sollte doch mit y = CurrentProject.Path klar sein, wohin gespeichert werden soll. Aber leider wird kein Backup erstellt. (Ich bekomme auch nicht die Msgbox) Warum?
:-(
Danke und lg
Mary
Hallo,
der Code an sich funktioniert...
Ist sichergestellt, dass es das Verzeichnis "accessbackups" unterhalb des DB-Verzeichnisses gibt?
Eine laufende Datenbank kopiert sich selbst und die Kopie soll als Sicherheit gelten?? Den zweiten Halbpunkt möchte ich anzweifeln.
Siehe Datenbank-Backup aus VBA (http://www.ms-office-forum.net/forum/showpost.php?p=680108&postcount=5).
Hallo und danke für eure Antworten - ich war auf Urlaub :-)
Meine Datenbank liegt auf dem Laufwerk G:/Arbeitsversionen/LOGBUCH
und in dem Ordner LOGBUCH gibt es einen Ordner accessbackups.
Ich habe es jetzt nocheinmal probiert - aber Backup wird keines erstellt.
@ebs17: Danke für den Hinweis. Momentan habe ich noch kein Backend. Aber dann ist die Variante sicher besser! Dankeschön!
lg
Mary
Hi,
Zitataber Backup wird keines erstellt.
wie stellst du das fest?
ZitatIch bekomme auch nicht die Msgbox
Das kann ja gar nicht sein, es sei denn die Prozedur wird mit Fehlermeldung abgebrochen.
Wie sehen denn deine Einstllungen bzgl. Fehlerbehandlung aus?
Falls das nicht richtig angekommen ist:
Ein Kopieren aus sich selber kann schon funktionieren (als solches), aber ob eine solche Kopie im Ernstfall sicher als Sicherkeitskopie verwendbar und nicht etwa teilweise zerschossen ist - da stellen sich erhebliche Zweifel.
Typischerweise würde man eine geschlossene DB kopieren, dann eben mit einem externen Script.
Hallo!
Danke für eure Rückmeldungen - ich habe mir das nochmals durch den Kopf gehen lassen und bemühe jetzt unsere IT mit einem automatischen Backup außerhalb von VBA ;D
lg
Mary