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

Access Discussion :

Sauvegarde incrémentée


Sujet :

Access

  1. #21
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    et bravo pour tes efforts.

    Juste 2 choses :
    1- la statégie de sauvegarde de Say est + qu'excellente : c'est le top, généralement employé par les comptables pour être sûrs de pouvoir revenir en arrière, quel que soit le problème (y compris erreur humaine, suppression intempestive, etc.).
    Ça permet de récupérer les données de n'importe lequel des 7 derniers jours (en fait les 5 jours ouvrables), d'une des 4 dernièrs semaines, un des 12 mois + bien sûr, une archive annuelle permanente.
    Tu peux, en cas d'usage intensif, ajouter les 10 dernières heures !

    Bref, réfléchis, sa méthode est aussi performante mais plus souple que la tienne...

    2- tu ne peux pas fermer à partir de ton bouton : indique nous le code de fermeture.
    Et surtout utilise le mode pas à pas, pour voir ce qui bloque, peut être dans un des évènements de fermeture d'un formulaire ?
    Mode pas à pas :
    - un arrêt (avec F9) sur la première ligne de code,
    - tu cliques sur le bouton de fermeture et, quand le code s'arrête sur ton point d'arrêt, tu exécutes chaque ligne une par une, avec F8.
    Tu verras bien ce qui bloque ?

    En général, lorsqu'Access ne se ferme pas, c'est qu'il reste une référence ouverte, en mémoire, vers une base de données. Pas évident à trouver, mais tu y arriveras.
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  2. #22
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 196
    Points : 102
    Points
    102
    Par défaut
    Salut ,

    merci beaucoup.

    Pour ce qui est la stratégie de Say ; je crois ne pas n'avoir tout saisi.

    ca veut dire qu'il y a une sauvegarde par jour , et qu'au fur et a mesure les sauvergardes s'effacement automatiquement dans le temps ??

    je me pencherai sur la stratégie de say.

    pour ce qui est du code de fermeture , il y en a 2 , un avec form_close()
    le code de sauvegarde que j'ai posté.

    et un autre un simple commande de bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub quitter_logiciel_Click()
    On Error GoTo Err_quitter_logiciel_Click
     
     
        DoCmd.Quit
     
    Exit_quitter_logiciel_Click:
        Exit Sub
     
    Err_quitter_logiciel_Click:
        MsgBox Err.Description
        Resume Exit_quitter_logiciel_Click
     
    End Sub
    je travaille mettre un code de fermeture à la suite de la sauvegarde et à faire un bouton qui va fermer le formulaire qui lui fermara l'application une fois la sauvegarde faite.

    cela pour eviter le bug de fermeture ..

    Voilà, la stratégie de say a l'air bien, je vais taché de la comprendre

    a bientôt

  3. #23
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 196
    Points : 102
    Points
    102
    Par défaut
    edit

    Voilà en rajoutant simplement docmd.quit à la fin du code de sauvergarde ca ne marche pas très bien acces se ferme mal.

    par contre si je le met dans un autre code que j'appelle après la sauvegarde la ca marche mieux , mais je ne sais pas si c'est un problème de temps ??? ou simplement d'ordre d'éxcution???

    Mais seulement , quand passe le formulaire en mode création Acces se ferme ,
    et se ferme mal peut-être mal.


    ca c'est pas la bonne solution je suis obligé de passé par VB pour désactiver le code durant l'opération en mode création !!

    en mode utilisateur pas de problème mais en création !!!!! l

    peut quitter autrement ? est ce que le fait d'appeler un code de fermeture après le code de sauvegarde fait que la sauvegarde est absolument terminé avant l'execution celui-ci ??


    Pour la stratégie de Say effectivement , c'est pas mal et ca donne des idées je ne crois pas pouvoir l'appliqué dans l'immédiat , mais j'y penserais fortement une fois que la base aura un peu plus de vécu
    c'est une excellente idée

  4. #24
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Bonjour, Nicko,

    1-
    Pour ce qui est la stratégie de Say ; je crois ne pas n'avoir tout saisi.
    C'est relativement simple pour les jours de semaine :
    - 4 (jours ouvrables seulement) ou 6 sauvegardes intitulées :
    + Lundi-NomBase.mdb
    + Mardi-NomBase.mdb
    + etc.
    Ou bien 'Jour1-NomBase.mdb' à 'Jour7-NomBase.mdb'.

    Pour les semaines, un poil + complexe. Tu peux prendre le n° de semaine du mois, et, si on est vendredi, par exemple, faire une sauvegarde intitulée
    + Sem1-NomBase.mdb
    + Sem2-NomBase.mdb
    + Sem3-NomBase.mdb
    + Sem4-NomBase.mdb
    + Sem5-NomBase.mdb exceptionellement, il peut y avoir 5 vendredis dans le mois.
    Ce qui veut dire aussi que tu n'as pas besoin de sauvegarde 'jour de semaine', le vendredi.

    Pour les mois, c'est comme les jours, à faire le dernier ou le 1er jour de chaque mois :
    + Janvier-NomBase.mdb,
    + Février-NomBase.mdb
    + etc.
    ou, si tu préfères (clasement alphabétique) : Mois1-NomBase.mdb à Mois12-NomBase.mdb

    Donc, chaque Lundi, la sauvegarde écrase et remplace celle du lundi précédent...
    Idem, chaque semaine et chaque mois.
    Le nombre de sauvegardes est fixe.

    2- Pour la stratégie de fermeture, le plus simple est généralement :
    - tous les Application.Quit (à préférer à l'ancienne commande DoCmd.Quit), là où tu veux,
    - dans l'évènement Form_Unload() ('sur libération', mieux que Form_Close, parce qu'il dispose d'un paramètre Cancel), tu mets une question pour confirmer si on veut sortir, genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Form_Unload(Cancel As Integer)
        If MsgBox ("Voulez-vous quitter l'application ?", vbYesNo, TitreApplication) = vbNo Then
            Cancel = True '===========  ne me quitte pas...
        Else
            'appel de la sub qui fait la copie de sauvegarde ici
            SauvegardeBase CheminBase, NomBase
        EndIf
    End Sub
    En aucun cas, tu ne mets de Quit ici, ni dans la sub qui fait la sauvegarde, sinon tu ne pourras jamais fermer, ni passer en mode Design, sans quitter Access !
    Tu peux aussi, tant que tu es en développement, ajouter une question similaire pour confirmer s'il faut faire la copie de sauvegarde ?
    - tu répondras non, sauf peut être, 1 fois par jour, en quittant,
    - le jour ou tu passe l'appli à d'autres, tu mets juste la question en commentaire.
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  5. #25
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 196
    Points : 102
    Points
    102
    Par défaut
    Merci beaucoup pour ces réponses,

    -Pour ce qui est de docmd je vais changer par application.quit ok.

    - pour ce qui est de la méthode de sauvegarde , je vais travailler dessus une fois la ma méthode mise en jour, ( bientôt) , comme cela je serai plus serein , pour la developpée.

    Une interrogation :

    Quand tu dis :
    Pour la stratégie de fermeture, le plus simple est généralement :
    - tous les Application.Quit (à préférer à l'ancienne commande DoCmd.Quit), là où tu veux,
    - dans l'évènement Form_Unload() ('sur libération', mieux que Form_Close, parce qu'il dispose d'un paramètre Cancel)

    Donc application.quit je peux le mettre ou je veux, soit Form_unload soit Form_close

    mais après tu dis :
    En aucun cas, tu ne mets de Quit ici, ni dans la sub qui fait la sauvegarde, sinon tu ne pourras jamais fermer, ni passer en mode Design, sans quitter Access !
    si je comprend bien ne pas mettre application.quit dans form_unload ?
    Sachant que dans form_close ca beug en mode création

    Je dois mal saisir , mais je ne peux les mettre ni dans l'une ni dans l'autre ?

    En tous cas cela produira l'erreur sauf si je dispose d'un bouton cancel qui quand je passe en mode création , le msgbox apparait et en appuyant sue cancel , cela me permet de passer en mode création ??

    En tous cas merci , je comprend la procédure , sur un formulaire à la fermeture : unload-> déchargement->puis close , fermeture access.

    bon en tout cas ce n'est qu'un moindre mal cette fermeture en passant en mode création , en utilisation , je n'aurai pas ce problème en developement , je m'en accomode.

    8)

  6. #26
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Donc application.quit je peux le mettre ou je veux, soit Form_unload soit Form_close
    Non, non, tout le contraire. J'ai pas été clair :
    - Aucun Quit dans les évènements du formulaire.
    - Tu peux mettre un quit dans le code d'un boutton "Quitter" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private sub Quitter_Clik()
        Application.Quit '>>>>>>>>>>>>>>> on ferme >>>>>
    End Sub
    - ou dans le code de ton menu spécifique Fichier - Quitter,
    - ou tu laisses l'utilisateur cliquer sur la case de fermeture d'Access, le menu standard Fichier - Quitter... (le + simple )
    - etc.
    Mais, aucun Quit dans les évènements de fermeture d'un formulaire :
    - soit l'utilisateur a déjà cliqué sur la case de fermeture d'Access (ou le menu standard) : pas besoin de le refaire,
    - soit il ne veut (comme toi) que fermer le formulaire, pas besoin de faire un Quit (au contraire ).

    Quant aux évènements de fermeture, tu n'as pas besoin d'utiliser les deux :
    - je préfère Form_Unload, parce que, si pour une raison quelconque des données ne sont pas valides et l'utilisateur doit les corriger d'abord, tu peux faire un Cancel si besoin, ce qui empêche toute fermeture.
    - si tu n'as pas besoin de cancel, les 2 évènements sont exactement équivalents : ce qui bugge dans l'un va bugger aussi dans l'autre.
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  7. #27
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 196
    Points : 102
    Points
    102
    Par défaut
    Merci pour toutes ces précisions !

    Maintenant j'ai saisi et j'ai suivi tes indications.

    Mab se est saine, plus de bug, entre les modes de formulaire, plus de problème compactage( aussi à une mauvaise procédure de fermeture).

    Tout est nickel. porblème résolu.

    Merci Beaucoup Papy Tofalu , pgz et say

    A + sur ce merveilleux forum

    Nicko

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Sauvegarde incrémental NOCATALOG
    Par big1 dans le forum Administration
    Réponses: 8
    Dernier message: 23/04/2012, 16h05
  2. [Débutant] Compteur , qui incrémente et sauvegarde la dernière valeur
    Par Kagami dans le forum C#
    Réponses: 3
    Dernier message: 30/01/2012, 15h25
  3. [plot] sauvegarde incrémentée d'un tracé
    Par belton dans le forum MATLAB
    Réponses: 4
    Dernier message: 14/01/2011, 12h03
  4. sauvegarder fichiers nom incrémental
    Par new_matlab dans le forum MATLAB
    Réponses: 3
    Dernier message: 24/04/2009, 15h23
  5. Sauvegarde base dorsale avec incrément par jour
    Par Marcopololo dans le forum VBA Access
    Réponses: 11
    Dernier message: 01/11/2008, 08h38

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