Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1840to1844
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dateien älter x-Tage löschen?

Dateien älter x-Tage löschen?
21.07.2021 12:20:52
Klaus
Hallo Leute,
ich habe eine 100mb Access-Datenbank, die aus verschiedenenen Gründen auf meinem C-Laufwerk liegt und nicht auf einem Fileserver - mein Computer ist 24/7 an.
Für den Fall der Fälle erstelle ich täglich alle 2h ein Backup, das mache ich so:

Sub AutoSaveDB()
Application.OnTime TimeValue("07:30:00"), "SaveMe"
Application.OnTime TimeValue("09:30:00"), "SaveMe"
Application.OnTime TimeValue("11:30:00"), "SaveMe"
Application.OnTime TimeValue("13:30:00"), "SaveMe"
Application.OnTime TimeValue("15:30:00"), "SaveMe"
Application.OnTime TimeValue("23:59:00"), "SaveMe"
End Sub
Sub SaveMe()
'legt ein Backup der Datenbank an
Dim fso As Object
Dim strFileFrom As String
Dim strFileTo As String
strFileFrom = "C:\Pfad\Datenbank.accdb"
strFileTo = "C:\Pfad\Backup\" & Format(Now, "YYYY_MM_DD_hhmm_") & "Datenbank.accdb"
Set fso = CreateObject("Scripting.FileSystemObject")
fso.copyfile strFileFrom, strFileTo
End Sub
Funktioniert auch sehr gut und vor allem automatisch.
Nur verursache ich so natürlich über 0.5GB redudante Daten auf meinem C-Laufwerk. Daher gehe ich alle paar Wochen mal in das Backup-Verzeichniss und lösche alles was älter als 5 Tage ist.
Frage: Wie kann ich das in der "SaveMe" Routine gleich automatisieren? Sprich: Lege ein Backup an, dann lösche alle Dateien im Ordner C:\Pfad\Backup die älter als 5 Tage sind?
Bonuspunkte: Lösche alle Dateien die älter als 5 Tage sind, ausser denen die zwischen 23:00 und 00:00 gespeichert wurden (dann hätte ich ein Tagesbackup übrig).
Bestimmt nur 2 oder 3 Zeilen, aber ich bekomme es grad nicht hin gegoogelt.
LG,
Klaus M.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateien älter x-Tage löschen?
21.07.2021 12:44:43
Nepumuk
Hallo Klaus,
teste mal:

Private Sub SaveMe()
'legt ein Backup der Datenbank an
Const FILE_FROM As String = "C:\Pfad\Datenbank.accdb"
Const FOLDER_PATH As String = "C:\Pfad\Backup\"
Dim strFileTo As String
Dim strFilename As String
Dim dtmFileDate As Date
strFileTo = FOLDER_PATH & Format$(Now, "YYYY_MM_DD_hhmm_") & "Datenbank.accdb"
Call FileCopy(Source:=FILE_FROM, Destination:=strFileTo)
strFilename = Dir$(FOLDER_PATH & "*.accdb")
Do Until strFilename = vbNullString
dtmFileDate = FileDateTime(PathName:=FOLDER_PATH & strFilename)
If dtmFileDate  0 Then
Call Kill(PathName:=FOLDER_PATH & strFilename)
End If
End If
strFilename = Dir$
Loop
End Sub
Gruß
Nepumuk
Anzeige
AW: Dateien älter x-Tage löschen?
21.07.2021 12:55:48
Klaus
Weltklasse!
Danke sehr!
AW: Dateien älter x-Tage löschen?
21.07.2021 13:44:35
Klaus
Nachtrag:
FileCopy hat im Test auf einem anderen Laufwerk funktioniert, springt mir aber im Realbetrieb auf C: auf den Fehler "Zugriff verweigert". Muss ich nicht verstehen, denn eigentlich habe ich genug Rechte auf meinem C: ....
mit dem "fso.copyfile" funktioniert es aber (was ich noch weniger verstehe).
Daher sieht das Makro jetzt so aus:

Private Sub SaveMe()
'legt ein Backup der Datenbank an
Const FILE_FROM As String = "Y:\Pfad\Datenbank.accdb"
Const FOLDER_PATH As String = "Y:\Pfad\Backup\"
Dim strFileTo As String
Dim strFilename As String
Dim dtmFileDate As Date
strFileTo = FOLDER_PATH & Format$(Now, "YYYY_MM_DD_hhmm_") & "Datenbank.accdb"
Dim fso As Object
Set fso = CreateObject("SCripting.filesystemobject")
fso.copyfile FILE_FROM, strFileTo
strFilename = Dir$(FOLDER_PATH & "*.accdb")
Do Until strFilename = vbNullString
dtmFileDate = FileDateTime(PathName:=FOLDER_PATH & strFilename)
If dtmFileDate  0 Then
Call Kill(PathName:=FOLDER_PATH & strFilename)
End If
End If
strFilename = Dir$
Loop
End Sub
Nepu, vielen Dank nochmal für die Hilfe - da ich ein funktionales Makro habe ist der Fall erledigt. Akademisch interessiert mich aber, wie "FileCopy" nicht aber ".copyfile" trotz eines Berechtigungsfalles eines Laufwerks funktionieren oder nicht funktionieren kann. Hast du dafür eine Einsicht, die du teilen magst?
LG,
Klaus M.
Anzeige
AW: Dateien älter x-Tage löschen?
21.07.2021 13:47:56
Nepumuk
Hallo Klaus,
keine Ahnung. So tief stecke ich in den Sicherheitsrichtlinien von Windows nicht drin.
Gruß
Nepumuk

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige