Sauvegardes datées – Supprimer les sauvegardes obsolètes

Dans l’article Sauvegardes datées, il était question d’automatiser des sauvegardes d’un fichier de base de données, en copiant ces sauvegardes dans un dossier précis. Une lectrice m’a demandé comment vider ce dossier de manière à ne conserver que les 3 dernières sauvegardes. Voici comment faire.

Le code

  1. Vérifiez que votre base de données dispose de la fonction FileList, traitée dans un article précédent. Pour mémoire, cette fonction obtient une liste triée des fichiers d’un dossier Windows.
  2. Recopiez le code qui suit dans un module standard de votre base (la bonne idée, c’est de compléter le module créé dans l’article Sauvegardes datées, plutôt que d’en créer un nouveau !).

Pour utiliser cette procédure :

  1. Généralement, vous aurez lancé une sauvegarde préalable, grâce à la procédure BackupDB donnée ici.
  2. Appelez la méthode CleanBackupFolder juste après, en lui fournissant le chemin du dossier de sauvegarde, le nombre de sauvegardes à conserver, et optionnellement l’extension de vos fichiers Access.

En résumé, tout ça peut se faire comme ceci :

Attention
La suppression des sauvegardes anciennes repose sur le tri alphabétique de ces sauvegardes. Si vous utilisez la procédure de sauvegarde donnée dans l’article Sauvegardes datées, pas de souci ! Si vous nommez vos sauvegardes différemment, vous devrez retoucher le code donné ici.

Vous aimerez aussi...

6 réponses

  1. Rodger dit :

    Je réponds à moi même, je viens de réussir à réaliser une restauration de données via mon menu principal avec un bouton.

    Principe :
    1-Je crée mes sauvegardes de la base dorsale dans un dossier « sauvegardes ».
    2-Je demande la restauration
    3-On supprime la base dorsale en cours en ayant vérifié l’existence du fichier.
    4-on propose à l’utilisateur de choisir quelle sauvegarde il souhaite utiliser parmi les 3 existantes dans le dossier « sauvegardes »
    5-On copie le fichier sélectionné en lieu et place de l’ancien.

    Résultat, tout est transparent, sans redémarrer le programme, on à accès aux données restaurées.
    ATTENTION, ceci est seulement valable pour une base fractionnées en 2!!

  2. Roger dit :

    Excusez moi, j’ai oublié de préciser que je parlais bien d’une restauration d’une sauvegarde de la base dorsale.
    Car j’ai réussi à arranger le programme « sauvegardes datées » pour sauvegarder que la base dorsale et non la frontale.
    D’où ma question sur la restauration.
    A savoir qu’en parallèle, j’ai du code qui permet de vérifier au lancement du programme si les liens entre la frontale et la dorsale est valide sinon le programme propose de renseigner ou se trouve la base dorsale sur le disque dur pour mettre à jour.
    Dans ce cas il serait possible via un bouton « restaurer » de supprimer la base dorsale, copier la sauvegarde et la coller en lieu et place de l’ancienne et ainsi remettre les liens à jours au lancement du programme frontal?

  3. Hervé Inisan dit :

    Rodger > Ce n’est pas si facile de restaurer les données dans une base existante : la base principale a pu évoluer, et on peut avoir des problèmes de cohérence sur des clefs primaires. Les sauvegardes sont un archivage à un instant t des données, prévues pour être réinstallées intégralement en cas de problème.

    Par contre, il est également possible, en mode frontale/dorsale, de modifier les liens vers la dorsale pour faire pointer la base frontale sur une autre dorsale (une sauvegarde).

  4. Rodger dit :

    Bonjour,

    On a crée des sauvegardes auto, puis effacé celles trop vieilles, mais l’étape suivante ne serai pas de, via un formulaire, aller chercher une sauvegarde datée puis de la restaurer dans la base de données?
    C’est réalisable?

    Je demande ça ici car j’avais posé une autre question dans « sauvegardes datées » mais jamais apparue…!

  5. Hervé Inisan dit :

    Guillaume > Est-ce que tu as bien repris, dans la base MDB, la fonction FileList dont il est question en début d’article ? Le message d’erreur laisse penser qu’elle n’est pas trouvée.

  6. Guillaume dit :

    Bonjour,
    Tout d’abord je vous adresse un grand merci pour ces fonctions très utiles dont vous nous avez révélé le code.
    TOut fonctionne, jusqu’au nettoyage des sauvegardes. En effet, j’ai une base de données en .mdb, et votre programme parle de .accdb. Aussi, j’ai essayé de remplacer .accdb par .mdb, mais j’ai toujours une erreur de compilation (« Sub ou Fonction non définie) au niveau du « FileList ».
    Auriez-vous une idée de où et de quoi vient ce problème ?
    Encore un énorme merci !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *