Hallo,
ich bin über den u.a. Code gestoßen, da ich gerne von meinem BE ein Backup automatisiert haben möchte.
Der Code muss doch in das FE oder?
Wie muss ich nun weiter vogehen?
Function SaveMe()
' Achtung: Wenn Ordner "Backup" fehlt, wird er angelegt
' und ein Verweis auf die Scripting Runtime sollte auch gesetzt sein
' ebenso wie ein Verweis auf Microsoft DAO
Dim DBPfad As String, BackupPfad As String, DBName As String, _
objFso As Scripting.FileSystemObject, Quelldatei As String, _
Zieldatei As String, JetztVar As String
Set objFso = CreateObject("Scripting.FileSystemObject")
' Diese Datenbank kopieren:
Quelldatei = CurrentDb.Name
DBPfad = Left(Quelldatei, Len(Quelldatei) - Len(Dir(Quelldatei)))
BackupPfad = DBPfad & "\Backup\"
DBName = Mid(Quelldatei, InStrRev(Quelldatei, "\") + 1)
DBName = Left(DBName, InStr(DBName, ".") - 1)
On Error Resume Next
objFso.CreateFolder BackupPfad
On Error GoTo 0
' Aktuelles Datum und Zeit in Backup (Genaue Zeit)
JetztVar = Format(Now, "yyyymmdd_hhnnss")
' Aktuelles Datum in Backup (Nur Datum)
' JetzVar=Format(Date, "yyyymmdd")
Zieldatei = BackupPfad & DBName & "_" & JetztVar & ".mdb" 'oder wohin auch immer
' und jetzt kopieren:
objFso.CopyFile Quelldatei, Zieldatei, True
Set objFso = Nothing
End Function
Hallo,
ich habe deinen Beitrag mal abgeändert da ich davon ausgehe dass du Backup und nicht Backend meinst.
Aber zu deiner Frage.
Das Backend aus dem Frontend heraus zu sichern ist ein ganz falscher Weg.
Besser man macht dies per Task. Aber auch da sind Fallstricke. Zur Sicherung müssen alle User ihr Frontend schließen. D.H. am besten automatisiert Nachts um 3:00 oder so das Backend speichern.
Dazu würde sich z.B. das Freeware Programm Areca eignen welches ich selbst einsetze, und per Windows-Aufgabenplanung einen Task erstellen.
Gruß Andreas
Oder wenn du die Anwendung als SingleUser betreibst, kannst du beim Schließen des Frontends die Datenbank sichern. Siehe dazu folgenden Link: www.rogersaccesslibrary.com/forum/backupwithcompactmdb-intermediate_topic394.html
Hallo,
FE und BE liegen auf einem Firmennetzwerk. Hier darf kein ext. Programm aus Sicherheitsgründen installiert werden. Geht es vielleicht mit einer bat Datei?
Firmennetzwerk?
Um so besser, lass das Backend von der EDV in das tägliche Backup aufnehmen.
Wo ist das Problem?
Gruß Andreas
Hallo,
ZitatGeht es vielleicht mit einer bat Datei?
wenn das ein ordentliches ;) Firmennetzwerk ist, wird eine Bat auch blockiert sein.
@Klaus
Zitatwenn das ein ordentliches ;) Firmennetzwerk ist, wird eine Bat auch blockiert sein
Es ist nicht immer auf ein UNORDENTLICHES ;) Netzwerk zurückzuführen, wenn auf einem Fileserver-Verzeichnis eine Datei ausführbar ist. ::)
Hallo,
die bat Datei soll ja nur die Datei BE von Laufwerk Y:/Datenbank_Zange zum Laufwerk P:/Backup_Datenbank_Zange kopieren. Alle beiden Laufwerke befinden sich im Netzwerk. Mal schauen.
Hallo,
BECopy.bat:
Xcopy "P:\Backup_Datenbank_Zange kopieren\DeineBEDatei.accdb" "P:\Backup_Datenbank_Zange kopieren\*.*" /y
mit deutlichem Hinweis auf die vorangegangenen Hinweise bezgl. der BE-Verwendung durch andere User.
Zitat von: HondoDas Backend aus dem Frontend heraus zu sichern ist ein ganz falscher Weg.
Dieser Aussage würde ich in dieser Form widersprechen.
Man muss aber dafür sorgen bzw. prüfen, dass im Moment des Kopierens keine Zugriffe auf das Backend vom eigenen Frontend wie auch nicht von Frontends anderer User und auch nicht von dritten Programmen vorliegen.
Dass im eigenen Frontend keine Zugriffe auf das Backend erfolgen, kann man z.B. über ein ungebundenes und alleinigst offenes Formular umsetzen, das man zum Start oder zum Beenden der DB-Anwendung oder auch zwischendurch benutzt.
Sicherungsmaßnahmen dazu:
Datenbank-Backup aus VBA
Hallo,
ZitatMan muss aber dafür sorgen bzw. prüfen, dass im Moment des Kopierens keine Zugriffe auf das Backend vom eigenen Frontend wie auch nicht von Frontends anderer User und auch nicht von dritten Programmen vorliegen.
Genau das ist doch das Problem an der Sache. Man sollte an dieser Stelle vieleicht auch mal erwähnen dass in einer Mehrbenutzerumgebung in einem Firmennetzwerk ein Access-Backend eine Suboptimale Lösung darstellt, um nicht zu sagen dass es eine schlechte Lösung aus verschiedensten Gründen ist.
Also ich setze bei meinen Kunden in keinem Falle mehr ein Access-Backend ein, sondern ausschließlich SQL Server.
Gruß Andreas