Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Συναρτήσεις ] Αυτόματη διαγραφή αρχείων Backup (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/5849-aytomati-diagrafi-arxeion-backup.html)

dimitrisp 03-04-21 12:38

Αυτόματη διαγραφή αρχείων Backup
 
Καλησπέρα

Για να κάνω Backup τής βάσης καλώ την παρακάτω Function:

Παράθεση:

Public Function CreateBackupAccess() As Boolean
Dim Source As String
Dim Target As String
Dim A As Integer
Dim objFSO As Object
Dim Path As String

'Path = CurrentProject.Path 'get location of current folder
Path = "C:\BackUpAccess"
Source = CurrentDb.Name
Target = Path & "\BackupDB " & Format(Now(), "mm-dd hh_MM AM/PM") & ".accdb"

'create the backup
A = 0
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(Path) Then 'Test if the folder exists before making a copy
A = objFSO.CopyFile(Source, Target, True)
Else
objFSO.CreateFolder (Path) 'Create folder if one does not exist
A = objFSO.CopyFile(Source, Target, True)
End If
Set objFSO = Nothing
End Function
Πώς πρέπει να συμπληρώσουμε τον κώδικα έτσι ώστε τα παλιά Backups
(αρχεία που δημιουργήθηκαν πριν από προεπιλεγμένη ημερομηνία)
να διαγράφονται αυτόματα ?

Σας ευχαριστώ εκ των προτέρων

tsgiannis 03-04-21 19:33

Μπορείς να εξετάζεις το Creation Date του κάθε backup και απο αυτό αναλόγως των κριτηρίων να κάνεις και τις διαγραφές
Δες εδώ :https://docs.microsoft.com/en-us/off...eated-property

dimitrisp 03-04-21 20:57

Καλησπέρα

Ευχαριστώ για την απάντηση!

Μπορείς, ωστόσο, να δώσεις ένα παράδειγμα, γιατί βλέπω ότι δεν τα καταφέρνω...

Ας πούμε ότι τα αρχεία μας ".accdb" είναι στο φάκελο "C:\BackUpAccess".
Πώς θα διαγράψουμε τα αρχεία με ημερομηνία δημιουργίας μεγαλύτερη των 10 ημερών?

tsgiannis 04-04-21 11:32

Δες αυτόν τον κώδικα
Κώδικας:

Public Function checkCreationdate()
Dim strFile As String
Dim InputDir As String
Dim Creationdate As Date
Dim oFS As Object
InputDir = "C:\BackUpAccess\"
Set oFS = CreateObject("Scripting.FileSystemObject")
    strFile = Dir(InputDir)
    Do While Len(strFile) > 0
    Creationdate = oFS.GetFile(InputDir & strFile).DateCreated
    Debug.Print strFile & " was created on " & Creationdate
    If DateDiff("d", Creationdate, Date) > 10 Then
    'Kill InputDir & strFile
    Debug.Print "to Delete : " & InputDir & strFile
    End If
        strFile = Dir

    Loop

End Function

Εχω απενεργοποιησει την διαγραφή (Kill)...έλεγξε το σε Backup πρωτα

dimitrisp 04-04-21 18:56

Καλησπέρα

Γιάννη, τέλεια! Ακριβώς αυτό ήθελα!

Ευχαριστώ. Καλή συνέχεια...


Η ώρα είναι 23:36.

Ms-Office.gr - ©2000 - 2021, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2