Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Backup bei aufgeteilter Datenbank

Begonnen von dobby110, Oktober 23, 2015, 12:08:43

⏪ vorheriges - nächstes ⏩

dobby110

Hallo zusammen,

kann mir jemand weiterhelfen?
Ich habe meine Datenbank aufgeteilt.
Bisher habe ich die Datenbank immer über einen Button geschlossen, der automatisch ein Backup erstellt

Hier der Code dazu:

ZitatDeclare Function apiCopyFile Lib "kernel32" Alias "CopyFileA" _
(ByVal lpExistingFileName As String, _
ByVal lpNewFileName As String, _
ByVal bFailIfExists As Long) As Long

Public Function neuesBackup()
   
Dim Result As Long
Result = apiCopyFile(CurrentDb.Name, "J:\_27\2704\Alternativ\Backup Access\Investments Backup.mdb", False)
End Function

Wie verhält sich das denn jetzt nachdem ich die Datenbank aufgeteilt habe? Speichert er dann nur noch das FrontEnd und das BackEnd nicht oder wie sieht die Situation jetzt aus?

MzKlMu

Hallo,
eine aufgeteilte Datenbank sind zwei Datenbanken, also müssen auch beide extra gesichert werden.

Es übrigens keine sichere Methode aus einer geöffneten DB zu kopieren. Zum Zeitpunkt des Aufrufs zum Kopieren ist die DB ja geöffnet.
Im schlimmsten Falle zerschießt Du beide DBs, das Original und das Backup.

Datensicherungen entweder völlig außerhalb von Access oder mit einer extra Datenbank die nur das Kopieren übernimmt.
Gruß Klaus

MaggieMay

Hi,

das Frontend muss nicht gesichert werden, das Original sollte sich idealerweise auf einem Netzlaufwerk befinden, gearbeitet wird mit einer lokalen Kopie davon.

Das Backend kannst du nur sichern, wenn du alle Formulare und Abfragen etc. geschlossen hast und kein anderer mehr darauf zugreift. Um das festzustellen, kann die zum Backend gehörende ldb-Datei ausgelesen werden.
Freundliche Grüße
MaggieMay

dobby110

Ich würde gerne das Thema nochmals aufgreifen.
Kann mir jemand bei dem VBA Code behilflich sein wie ich ein Backup einer geschlossenen Datenbank erstellen kann?

Ich habe mir das so vorgestellt, dass ich eine eigene Access-Anwendung baue. über die ich durch Schaltflächen von diverse Datenbanken eine Sicherung erstellen kann. Es reicht eine einfach Copy - Paste Funktion mit Datumsangabe.

Wie würde ein VBA Code für eine beliebige Datei denn aussehen?
In meinem Code wird sich ja nur auf die geöffnete Datenbank bezogen.

Vorab schon einmal vielen Dank.

MaggieMay

Hi,

du musst doch nur anstelle von "Currentdb.Name" den vollständigen Zugriffspfad zu der zu kopierenden Datei einsetzen. Zur Ermittlung von Pfad und Dateinamen könntest du einen Dateiauswahldialog einsetzen.
Freundliche Grüße
MaggieMay

dobby110

ja sorry, aber in den VBA Codes kenne ich mich gar nicht gut aus.

Wenn einer fertig da steht, kann ich es nachvollziehen, aber viel abändern oder selbst schreiben, das klappt leider noch nicht.

MaggieMay

ZitatWie würde ein VBA Code für eine beliebige Datei denn aussehen?

bspw. so:
Result = apiCopyFile("X:\Datenbanken\Backend.mdb", "J:\_27\2704\Alternativ\Backup Access\Investments Backup.mdb", False)

Die Frage ist aber doch, woher du den Zugriffspfad nehmen willst und wohin das Backend geschrieben und wie es benannt werden soll.
Freundliche Grüße
MaggieMay

dobby110

ja danke , ich habe es hinbekommen.

Result = apiCopyFile("J:\AI _ NEU - FrontEnd.accdb", "J:\Sicherungskopien Makros\__automatisierte Sicherungskopien\AI _ NEU - FrontEnd_BackUp " & Year(Now) & "_" & Month(Now) & "_" & Day(Now) & ".accdb", False)

so würde die Zeile dann aussehen.

Könnte ich eigentlich auch mehrere "Result" Zeilen aufführen, so dass in einem Schritt gleich mehrere Dateien/Datenbanken gespeichert werden? Oder ist das eher kritisch?

MaggieMay

Du kannst mehrere solcher Zeilen untereinander schreiben, sollte kein Problem sein.
Freundliche Grüße
MaggieMay

dobby110

Super ... VIELEN DANK für die Hilfe !!!  ;) ;) ;)