des centaines d'astuces pour vous faciliter le quotidien


back up d'access à l'entrée ou à la sortie

15/09/2013 15:00

 

 

En cours de développement il est recommandé de sauvegarder assez souvent. Je le faisais en zippant frontal

et dorsale à intervalle régulier.

Cette façon de faire s'est construite suivant un palier de progression :

 

1 => Sauvegarde de sa base en cours non scindée.

2 => Sauvegarde de sa base en cours non scindée zippée

3 => Sauvegarde frontale/Dorsale zippée 

 

Plus loin : En réseau

A=>  Vérification qu'on est le premier connecté => OK = 3

B =>  Module déconnecte tous utilisateurs 

 

On voit le pallier 1. 

 

A l'intérieur du dossier où est placé notre base de données on crée un dossier sauve.

(Destiné à héberger nos sauvegardes)

Dans notre base de données :

          - Une table tblSauvegarde  

            (Destinée à héberger la date de nos sauvegardes)  

            Un champ => Date_Sauvegarde (Type => Date/Heure)

- Un module modsauve

 

 

 

Public Function SauvegardeMois()   

 

        Dim varDernierSauvegarde As Variant, Madate As Date    

        Dim MoisCourant As Integer, MoisSauve As Integer   

        Dim fso As Object, strDest As String   

 

 

        MoisCourant = Month(Date)   

        Madate = Date    

 

      varDernierSauvegarde = DMax("Date_Sauvegarde", "tblSauvegarde")   

 

        If IsNull(varDernierSauvegarde) Then   

        MoisSauve =  

        Else   

        MoisSauve = Month(varDernierSauvegarde)   

        End If   

 

        If MoisSauve <> MoisCourant Then   ''premier démarrage du mois--> Sauvegarde   

 

                 strDest = CurrentProject.Path & "\Sauve\" & _                  

                                     Left(CurrentProject.Name, Len(CurrentProject.Name) - 4) & _                                  

 

                            "_Sauve_" & Format(Now, "dd-mm-yyyy-hh-nn-ss") & "." _                 

                        & Right(CurrentProject.Name, 3)   

                 Set fso = CreateObject("Scripting.FileSystemObject")        

                 fso.CopyFile CurrentProject.FullName, strDest   

                Set fso = Nothing   

 

                CurrentDb.Execute "Insert Into tblSauvegarde Values (" _   

                                            & CDbl(Madate) & ")"   

                MsgBox "La sauvegarde mensuelle a été réalisée", vbInformation   

        End If

 

End Function

 

 

 

Deux options pour provoquer l'événement : macro ou Formulaire.

On opte pour le formulaire? Ok

Pour ceci vous avez un formulaire qui s'ouvre au démarrage de la base. (Evidemment)

Outils/démarrage/afficher formulaire et là se trouve le formulaire qui contient sur ouverture :

 

 

Private Sub Form_Open(Cancel As Integer)
    Call SauvegardeMois
End Sub

 

Ici, nous avons réalisé une façon de sauvegarder automatiquement une fois par mois la base de données.

Si besoin, il sera simple de modifier le délai pour le porter à journellement, voir jour + 7, etc.

A chaque ouverture du formulaire il est vérifié dans la table le mois de l'année en cours et l'exécution

ou non de sauvegarde.

Le nom de sauvegarde se fait sous la forme : (Ici la base s'appelle sauveBase.mdb)

sauveBase_Sauve_08-09-2013-02-02-31.mdb (L'intérêt des secondes dans le cas présent…) 

—————

Précédent