IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Sauvegarder la base dorsale [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 200
    Points : 76
    Points
    76
    Par défaut Sauvegarder la base dorsale
    Bonjour,

    J'ai une application scindée en deux parties : base frontale et base dorsale.
    J'aimerais pouvoir sauvegarder de manière automatique la base dorsale puisque toutes les données crées sont dans cette base.
    Il faudrait qu'elle soit sauvegardé tous les jours avec comme nom : la date du jour.
    Serait-il possible de supprimer par la même occasion les anciennes sauvegarde ?
    Je m'explique : au bout de 15 jours j'ai 15 copies de la base dorsale. Il faudrait qu'il y en ait toujours le même nombre ... par exemple les 15 derniers jours. S'il y a un problème il sera révélé le lendemain ou le surlendemain donc rien ne sert de conserver 30 copies de la base.
    Est-il possible de réaliser ce que je viens de décrire ?

  2. #2
    Membre confirmé Avatar de Tonioyo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2008
    Messages : 343
    Points : 518
    Points
    518
    Par défaut
    Bonjour,

    Il est possible de faire ce que vous avez décrit en utilisant le système d'exploitation. Pour être plus précis, il est possible d'écrire un (ou plusieurs) fichier batch. Il s'agit de scripts qui peuvent être éxecutés par un interpréteur de commande (MS Dos sous windows / Unix sous linux). Pour la contrainte temporelle il suffit d'utiliser le scheduler du système d'exploitation (Tâches planifiées sous windows / cron sous linux).

    En ce qui concerne la suppression d'un fichier avec contrainte temporelle, il doit être possible de le faire en combinant deux commandes avec un pipe

    Par exemple sous dos :

    Ou bien en redirigeant la sortie vers un fichier pour retraiter l'information

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DIR * /O:D > listeDesFichiers.txt
    Cordialement,
    loi de LeBlanc : Plus tard signifie jamais. extrait de Coder proprement Auteur:Robert C. Martin

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 200
    Points : 76
    Points
    76
    Par défaut
    Merci Tonioyo.

    J'avais lu cette méthode quelque part sur le web ...
    Cela marche-t-il si la base est sur un serveur ?
    Je ne suis dans l'entreprise que pour un an donc après faut que ça continue de fonctionner. Si je programme un événement via les tâches planifiés, une fois que le PC que j'utilise sera utilisé par quelqu'un d'autre tout tombe à l'eau ...
    Je précise qu'il y a des sauvegardes des données qui sont stockées sur le serveur.
    Je souhaitais faire un autre système de sauvegarde qui soit plus pratique à utiliser.

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Personnellement, j’utilise FileSystemObject.

    NB tu dois ajouter la référence Microsoft Scripting Runtime

    Tu peux trouver de la documentation ici
    http://www.activexperts.com/activmon...esInFolder.htm

    Un exemple de syntaxe que j’utilise pour mes sauvetages (ici des répertoires)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Public Function Sauver(RépertoireASauver As String) As Boolean
    Dim Cible As String
    Dim fso As FileSystemObject
    'aménager un message sur le formulaire "sauvetages"
    Forms!SAUVETAGES.Message = RépertoireASauver & " en cours de sauvetage"
    DoEvents
    'vérifier que "RépertoireASauver" existe
    If VérifierExistenceRépertoire(RépertoireASauver) = False Then
    MsgBox "le répertoire : " & RépertoireASauver & " n'existe pas", vbCritical, "SAUVETAGES"
    Sauver = False
    GoTo Fin:
    End If
    'contruire le nom de la cible
    Cible = "C:\save" & Right(RépertoireASauver, Len(RépertoireASauver) - 2)
    'créer la cible si elle n'existe déjà
    Call CreateDirectoryExplicit(Cible)
    'copier le répertoire
    Set fso = New FileSystemObject
    fso.CopyFolder RépertoireASauver, Cible, True
    Set fso = Nothing
    Sauver = True
    'aménager un message sur le formulaire "sauvetages"
    Forms!SAUVETAGES.Message = "Sauvetages terminés"
    DoEvents
    Fin:
    Forms!SAUVETAGES.Message = ""
    End Function
    Pour ta tournante de 15, tu pourrais
    1° faire ton sauvetage
    2° Compter le nbre de fichiers dont le nom correspond à un sauvetage
    3° Si >15 ---> détruire le plus ancien.

    Reviens-moi, si ce n'est pas clair
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2007
    Messages : 184
    Points : 188
    Points
    188
    Par défaut
    Bonjour,
    Une autre piste...

    Utiliser un fichier.bat (avec des commande de l'OS) à lancer avec les taches plannifiées.
    ci dessous
    - Gestion de 20 sauvegardes dans 20 dossiers pouvant contenir plusieurs sous dossiers
    - rapport de sauvegarde
    - possibilité d'exclure des fichiers exclu.txt.

    A personnaliser....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
     
    @echo off
    cls
    title  ** Sauvegarde sur disque externe **
    color af
    echo.
    echo      ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
    echo      º  Sauvegarde des donn‚es sur disque externe  º
    echo      ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
    echo.
     
    rem #############################
    rem        Parametrage
    set Source1=C:\bat
    set Source2=C:\Base97
    set Source3=C:\EBP\Dossiers
    set Source4=C:\Documents and Settings\user\Mes documents
     
     
    set Cible1=Bat
    set Cible2=Base97
    set Cible3=Ebp
    set Cible4=Mes documents
     
     
    set DisqExterne=E:
     
    set Rapport1=C:\Documents and Settings\user\Bureau
    set Rapport2=
    set Rapport3=
    rem #############################
     
    rem       Verifions si le disque externe est accessible
    rem       ---------------------------------------------
    if not exist "%DisqExterne%\Sauvegarde.txt" echo Premiere sauvegarde >"%DisqExterne%\Sauvegarde.txt"
    if not exist "%DisqExterne%\Sauvegarde.txt" goto Erreur
    if not exist %Source%\Archives\*.* md %Source%\Archives >nul
    rem
    rem       Mesurer le temps de sauvegarde
    rem       ------------------------------
    command /e:2000 /c for %%i in (1 2) do prompt set _d=$d$_ | find "$" /v >{t}.bat
    for %%c in (call del) do %%c {t}.bat
    echo.
    (
    echo  ********************************** 
    echo     Sauvegarde du %_d% 
    echo  **********************************
    echo. )> "%DisqExterne%\Sauvegarde.txt"
    command /e:2000 /c for %%i in (1 2) do prompt set _t=$t$_ | find "$" /v >{t}.bat
    for %%c in (call del) do %%c {t}.bat
    echo  l'heure de debut est %_t:~0,5% >>"%DisqExterne%\Sauvegarde.txt"
    %DisqExterne%
    cd\
    echo.
    echo   Suppression de la sauvegarde la plus ancienne
    if exist Svg20\*.* rd /s /q Svg20
    echo.
    echo   Incrementation des sauvegardes
    if exist Svg19\*.* ren Svg19 Svg20
    if exist Svg18\*.* ren Svg18 Svg19
    if exist Svg17\*.* ren Svg17 Svg18
    if exist Svg16\*.* ren Svg16 Svg17
    if exist Svg15\*.* ren Svg15 Svg16
    if exist Svg14\*.* ren Svg14 Svg15
    if exist Svg13\*.* ren Svg13 Svg14
    if exist Svg12\*.* ren Svg12 Svg13
    if exist Svg11\*.* ren Svg11 Svg12
    if exist Svg10\*.* ren Svg10 Svg11
    if exist Svg09\*.* ren Svg09 Svg10
    if exist Svg08\*.* ren Svg08 Svg09
    if exist Svg07\*.* ren Svg07 Svg08
    if exist Svg06\*.* ren Svg06 Svg07
    if exist Svg05\*.* ren Svg05 Svg06
    if exist Svg04\*.* ren Svg04 Svg05
    if exist Svg03\*.* ren Svg03 Svg04
    if exist Svg02\*.* ren Svg02 Svg03
    if exist Svg01\*.* ren Svg01 Svg02
    echo.
    md Svg01
    echo                  Sauvegarde en cours
    echo                  -------------------
    if exist c:\Bat\Exclu.txt copy /y c:\Bat\Exclu.txt %DisqExterne%\
    xcopy /c /e /h /r /y /z /EXCLUDE:exclu.txt "%Source1%\*.*"  "%DisqExterne%\Svg01\%Cible1%\"
    if not defined Source2 goto FinSvg 
    xcopy /c /e /h /r /y /z /EXCLUDE:exclu.txt "%Source2%\*.*"  "%DisqExterne%\Svg01\%Cible2%\"
    if not defined Source3 goto FinSvg 
    xcopy /c /e /h /r /y /z /EXCLUDE:exclu.txt "%Source3%\*.*"  "%DisqExterne%\Svg01\%Cible3%\"
    if not defined Source4 goto FinSvg 
    xcopy /c /e /h /r /y /z /EXCLUDE:exclu.txt "%Source4%\*.*"  "%DisqExterne%\Svg01\%Cible4%\"
    if not defined Source5 goto FinSvg 
    xcopy /c /e /h /r /y /z /EXCLUDE:exclu.txt "%Source5%\*.*"  "%DisqExterne%\Svg01\%Cible5%\"
    echo.
    rem if exist %Source%\Archives\*.*  Sauvegarde des fichiers en archives
    rem if exist %Source%\Archives\*.* xcopy /c /e /h /r /y /z /D  %Source%\Archives\*.*  %DisqExterne%\Archives
    goto FinSvg
     
     
    :Erreur
    cls
    color cf
    (
    echo. 
    echo     PROBLEME  
    echo     ********  
    echo. )>"c:\Bat\Sauvegarde.txt"
    command /e:2000 /c for %%i in (1 2) do prompt set _d=$d$_ | find "$" /v >{t}.bat
    for %%c in (call del) do %%c {t}.bat
    (
    echo  ------------ 
    echo   %_d% 
    echo  ------------ 
    echo. )>> c:\Bat\Sauvegarde.txt
    command /e:2000 /c for %%i in (1 2) do prompt set _t=$t$_ | find "$" /v >{t}.bat
    for %%c in (call del) do %%c {t}.bat
    (
    echo  a %_t:~0,5% 
    echo. 
    echo     La sauvegarde ne s'est pas faite 
    echo.)>>"c:\Bat\Sauvegarde.txt"
    echo.
    echo          Disque externe non trouv‚ !
    echo          ---------------------------
    echo.
    echo                  LA SAUVEGARDE NE S'EST PAS FAITE !!!!!!
    echo.
    if exist C:\bat\choice.com c:\Bat\Choice /t:o,07>nul 
    if not exist C:\bat\choice.com pause
    goto RapportErreur
     
     
    :FinSvg
    echo.
    echo                     *******************
    echo                         Sauvegarde termin‚e
    echo                             *******************
    echo.
    command /e:2000 /c for %%i in (1 2) do prompt set _t=$t$_ | find "$" /v >{t}.bat
    for %%c in (call del) do %%c {t}.bat
    (
    echo.      
    echo                ****    
    echo.      
    echo  l'heure de fin est %_t:~0,5%  
    echo.      
    echo  ****************************** 
    echo.)>>"%DisqExterne%\Sauvegarde.txt"
    echo.
     
     
    :Rapport
    rem      Envoi du contre rendu de sauvegarde
    rem      -----------------------------------
    if not defined Rapport1 goto Fin  
    copy /y "%DisqExterne%\Sauvegarde.txt" "%Rapport1%\Sauvegarde.txt"
    if not defined Rapport2 goto Fin 
    copy /y "%DisqExterne%\Sauvegarde.txt" "%Rapport2%\Sauvegarde.txt"
    if not defined Rapport3 goto Fin 
    copy /y "%DisqExterne%\Sauvegarde.txt" "%Rapport3%\Sauvegarde.txt"
    goto Fin
     
    :RapportErreur
    echo     Envoi du contre rendu de sauvegarde
    echo      -----------------------------------
    if not defined Rapport1 goto Fin  
    copy /y "C:\bat\Sauvegarde.txt" "%Rapport1%\Sauvegarde.txt"
    if not defined Rapport2 goto Fin  
    copy /y "C:\bat\Sauvegarde.txt" "%Rapport2%\Sauvegarde.txt"
    if not defined Rapport3 goto Fin 
    copy /y "C:\bat\Sauvegarde.txt" "%Rapport3%\Sauvegarde.txt"
    goto Fin
     
     
    :Fin
    echo.
    set Cible1=
    set Cible2=
    set Cible3=
    set Cible4=
     
    set DisqExterne=
    set Source1=
    set Source2=
    set Source3=
    set Source4=
     
    if defined Rapport1 set Rapport1=
    if defined Rapport2 set Rapport2=
    if defined Rapport3 set Rapport3=
    exit

    Cordialement,
    Fevec

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 200
    Points : 76
    Points
    76
    Par défaut
    Merci bien avec tout ça je devrais arriver à m'en sortir.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sauvegarder une Base de données Oracle 8
    Par benjamin50 dans le forum Administration
    Réponses: 7
    Dernier message: 16/06/2009, 11h36
  2. Réponses: 6
    Dernier message: 03/11/2008, 10h44
  3. Sauvegarde base dorsale avec incrément par jour
    Par Marcopololo dans le forum VBA Access
    Réponses: 11
    Dernier message: 01/11/2008, 08h38
  4. [VBA] Bouton Sauvegarde de base dorsale
    Par wazodnuit dans le forum Access
    Réponses: 6
    Dernier message: 05/08/2006, 04h43
  5. Sauvegarde physique base ouverte sous 8.i
    Par hkhan dans le forum Administration
    Réponses: 7
    Dernier message: 19/10/2004, 12h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo