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. #1
    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 Sauvegarde incrémentée
    Bonjour à tous,

    J'ai regarder pas mal de post concernant , les sauvergardes automatiques ou autre mais je n'ai pas trouvé celle qui me conviendrait.

    Voilà je sais faire par macro , effectuer une copie d'un fichier à la fermeture de celui-ci.
    J'ai fais ca sous excel , avec une cellule qui s'incrémentait à l'ouverture. et je me basai sur cette cellule + le nom du fichier pour enregister une sauvegarde.

    Mais dans access je ne sais comment m'y prendre pour que le sauvegarde soit incrémentée , un numéro incrémenter serait bien , mais le nom du fichier avec la date , h m, s peut faire l'affaire aussi.

    le but est d'avoir un fichier contenant les toutes sauvergardes effecutées à chaque fermeture.

    merci pour vos suggestions

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    Je trouve que c'est un bon système de nommer la sauvegarde :
    PREFIXE Date Heure.

    Mais tu y a pensé tout seul. C'est quoi la question?

    Deux remarques :
    - souvent, ce sont les tables que l'on a besoin de sauvegarder, pas le reste.
    - Pour ne pas saturer le répertoire de sauvegarde, il peut être bon de sauvegarder en file, la taille de la file étant à adapter à son besoin.

    En espérant que cela t'aide,

    pgz
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    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 pour ta réponse ,

    Mais je suis un peu dans le flou, quand tu dis :
    Je trouve que c'est un bon système de nommer la sauvegarde :
    PREFIXE Date Heure.
    Moi aussi mais je sais pas comment faire !

    le Place que prend les sauvegarde ne me gêne pas.( c'est + simple de sauvegarder le fichier , enfin en fonction de mes compétences


    Ma question était comment peut faire une sauvegarde incrémenté ?

    merci

  4. #4
    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 ,

    J'ai lu pas mal de choses sur les sauvegardes , notamment qu'il est pas bon de le faire sur un fichier ouvert , le faire à la fermeture , cela présente les mêmes risques ?

    En je cherche un moyen simple dans ou extérieur à access pour sauvergarder la base à chaque fermeture sous un nom différent à chaque fois.

  5. #5
    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
    D'abord, comme dit pgz, il faut savoir ce que tu veux sauvegarder :
    - l'application, avec ses formulaires... (je ne vois pas trop l'intérêt, sauf pendant le développement, en tant que développeur)
    - la base de données, avec les tables seulement (ça, c'est vital).

    Pour récupérer le chemin d'accès à la base de données, voir la FAQ.
    - Si tu as ce chemin (dans la variable CheminBDD, par exemple),
    - si tu as le nom de la base (variable NomBDD, par exemple),
    - si tu utilises FileCopy (tu peux aussi utiliser une référence à fso - FileSystemObject ?) pour faire la copie,
    il ne te reste plus qu'à faire tes copies avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim NomCopie As String
        'Extraire le nom strict, sans l'extension (.mbd ou .mde)
        NomCopie = Left (NomBDD, Len(NomBDD - 4))
        'Ajouter la date + heure + remettre l'extension
        NomCopie = NomCopie & Format(Now, "_yyyy_mm_dd__hh_nn") & ".mdb"
        FileCopy CheminBDD & "\" & NomBDD, CheminCopies & "\" & NomCopie
    À noter :
    - j'ai mis des "_" dans le format de date/heure, parce que la destination est un nom de fichier (pas de ":"...). Tu peux les changer, tant que tu ne mets aucun caractère interdit.
    - j'ai mis le format japonais, inversé, pour la date, pour que tes fichiers soient triés alphabétiquement : année, puis mois, jour, heure, minutes.
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  6. #6
    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 Bp Papy Turbo pour cette réponse précise.

    Il est vrai que sauvergarder l'application entière est lourd mais j'en ai besoin , car pendant encore quelques mois la base , fomurlaire, état .. comportera des modifications.

    Il est certain, que sauvegarder juste la base avec les tables est mieux mais le remplacement de fichiers est plus aisée pour une personne "utilisatrice" d'access seulement voilà la raison.

    Je prend ton exemple et e le met en appliaction et je vous tiens au courant du résultat.

    nicko

  7. #7
    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 !

    J'ai quelques problèmes pour attribuer les variables :

    NomBDD, CheminBDD, et CheminCopies
    je pensais pouvoir y arriver mais c'est bien diéfférent d'excel ..

    pour moi ces variables ne changeront pas et je les est toutes, donc je pensais écrire directement les noms et chemin mais Vb à par l'air d'accepter ...

    j'essaie tjrs mais c'est pas çà suis pas bon !

    comment fais t'on ? de même que pour le faire à la fermture que dois-je rajouter y pas "beforeclose " comme dans excel ?

  8. #8
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    Si tu veux copier toute la base, sans te préoccuper de la place de la taille que va prendre le dossier de sauvegarde, tu peux essayer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sFullPath = DbEngine.Workspace(0).DataBase(0).name
    sName = Mid(sFullPath, InStrRev(sFullPath, "\")+1)
    sCopyName = sName & Format(Now(), "yy mm dd','hh nn ss")
    sCopyFullPath = "mettre ici le chemin du répertoire de sauvegarde" & "\" & sCopyName
    FileCopy sFullPath, sCopyFullPath
    Toutes les variables sont des chaînes de caractères.

    Bonne chance,

    pgz
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  9. #9
    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 bp !

    ben j'ai un problème avec le 2 ème code ;

    j'ai une erreur au niveau du workspace cela me met : erreur de m"thode ou données introuvable ..

    quoi qu'il en soit faut que j'aprenne , je vais bien finir par y arriver !!

  10. #10
    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
    Hello,
    Citation Envoyé par Nicko29
    Il est vrai que sauvergarder l'application entière est lourd mais j'en ai besoin , car pendant encore quelques mois la base , fomurlaire, état .. comportera des modifications.
    Ça, ça ne concerne que toi : tu fais
    - une copie locale de l'application (+ idéalement, une copie de la base de données, pour éviter de "flinguer" cette base pendant le développement),
    - tu n'utilises que cette copie pour créer de nouveux formulaires, etc.
    - tu fais tes copies de sauvegarde de l'application tout seul, tous les jours (ou + souvent) depuis ton poste (poste de développement).
    - tu vérifies que les copies de sauvegarde de la base partagée sont "récupérables" (backup + restore).
    Si vous développez à plusieurs (en équipe), tu devrais avoir un système de contrôle de sources (SourceSafe ou similaire), mais, généralement, une bonne coordination entre développeurs suffit, pour les petits projets.
    Enfin, si tu es à la fois développeur et utilisateur de ce logiciel, tu as 2 copies de l'application sur ton poste :
    + la copie de développement (liée à la base de données de développement),
    + la copie normale de (l'ancienne version de) l'application, pour usage courant, relié à la même base que les autres.

    Citation Envoyé par Nicko29
    Il est certain, que sauvegarder juste la base avec les tables est mieux mais le remplacement de fichiers est plus aisée pour une personne "utilisatrice" d'access seulement voilà la raison.
    Faux. Absolument, totalement et sans conteste possible. Cette disposition vous fait tous perdre du temps (fonctionnement lent, pauses pour développement, etc.), provoque des problèmes très difficiles à cerner (recherche forum), et ouvre le risque de détruire (copie dans le mauvais sens, etc.) le tout en une seule fausse manoeuvre...
    1/ il faut absolument que tu sépares les deux : si tu mets un bloc unique (application + base de données) en commun sur un serveur (simple PC partagé), que tous les utilisateurs partagent ainsi, non seulement les tables, mais aussi les formulaires, tu vas avoir tous les problèmes qu'on trouve tous les jours sur ce forum (faire un recherche avancée sur "serveur", "application partagée" ... ), plein de problèmes quasi incompréhensibles.

    2/ comment veux tu modifier un formulaire (+ état + etc.) et distribuer à tous les utilisateurs la nouvelle version de l'application, alors que, pendant ce développement, tous utilisateurs continuent de travailler avec l'application précédente, sur la base de données (tables) ?????
    Tu dois leur demander d'arrêter tout travail, le temps que tu modifies un formulaire ?
    C'est ça qui est un mode de travail compliqué, quasi impossible à gérer à long terme.

    Ce point a déjà été évoqué souvent : il faut que tu sépares les deux.
    Excuse moi pour le ton très catégorique, mais je vois trop de problèmes dûs à des bases/applis monobloc partagées : ça ne marche jamais, à moyen terme.

    Pour le petit problème de syntaxe, c'est probablement de l'ordre de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sFullPath = DbEngine.Workspace(0).DataBases(0).name
    avec un 's' à Databases().
    Ne te contente jamais de copier / coller les exemples du forum.
    En retapant, sous VBA, un point à la place de chaque point dans la commande ci-dessus, tu verras la liste des méthodes et propriétés autorisées, et tu corrigeras toute fraute de frappe, d'orthographe...
    Tu peux aussi cliquer sur un mot et appuyer sur [Ctrl+espace] -> ça complète le mot s'il n'est pas fini, ça propose la liste si y a plusieurs choix...

    Enfin, pgz, merci pour les précisions, mais gaffe : il semble que tu aies oublié d'enlever puis remettre l'extension (".mdb") dans le nom de fichier de destination (sCopyName, voir code + haut).
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  11. #11
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    Enfin, pgz, merci pour les précisions, mais gaffe : il semble que tu aies oublié d'enlever puis remettre l'extension (".mdb") dans le nom de fichier de destination (sCopyName, voir code + haut).
    Exact le code ne rajoute pas le suffixe .mbd. Mais je ne crois pas que ça pose de pb. Le suffixe est ajouté lors de l'exécution de la copie, sans qu'on le demande.

    A+

    pgz
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  12. #12
    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 !

    eh bien merci encore pour explications !

    Je vous répond :

    Papy Turbo :


    Ça, ça ne concerne que toi : tu fais
    - une copie locale de l'application (+ idéalement, une copie de la base de données, pour éviter de "flinguer" cette base pendant le développement),
    c'est absolument ca mon but.



    Des précisions que je n'est pas apporter et qui répondront à la plupart des parargraphes notamment le 1/ et le 2/ :

    , Il y a une base et une seule qui se trouve sur un seul pc et qu'une seule personne s'en servira en même temps.

    Ici pas de réseau et pas de base partagé , installation informatique restreinte : 1 pc.
    Et 2 personnes formé uniquement à l'utilisation de la base par formulaire.
    Sans grandes compétences informatiques , même pour le moment disons limité.

    je suis le développeur et pour une simple question de distance entre moi et les utilisateurs , je ne peux intervenir directement sur le fichier.

    les manoeuvres courantes et comme les problèmes imprévus doivent pouvoir être gérer avec le moins de manoeuvre délicate possible.

    -> ce pourquoi je parle de sauvegarde de fichier entier , pour la restauration.

    donc en résumé je souhaite faire des sauvegardes locales mais pas sur le même disque , plus des sauvegardes sur support extérieur ( pas encore tout à fait finalisé)

    Voilà et je vois que je suis limité aussi moi-mêmes par mes compétences.
    j'apprend mais cela n'est pas très rapide.

    et les sauvegarde pour moi sont essentiels biensur.

    Pour le dernier code modifié avec le "S" en plus , mais sur
    et je me retrouve avec une erreur :
    erreur 70

    permission refusé
    l'erreur est sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileCopy sFullPath, sCopyFullPath
    Cela est peut etre du au fait que ma base est ouverte?? ou au niveau du chemin ( j'en est testé plusieurs) par ce que , les sauvegardes je souhaiterais les faire à la fermeture.

    merci pour ces disscutions intérressantes

  13. #13
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Il se peut que le 'FileCopy' ne fonctionne effectivement pas sur la base ouverte. Dans ce cas je ne vois que 2 possibilités :
    1. Copier tous les objets de la base dans la sauvegarde, un par un
    2 ouvrir une autre base qui réalisera la copie et se refermera seule...

    pgz
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  14. #14
    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
    Citation Envoyé par Nicko29
    je me retrouve avec une erreur :
    erreur 70

    permission refusé
    l'erreur est sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileCopy sFullPath, sCopyFullPath
    Cela est peut etre du au fait que ma base est ouverte?? ou au niveau du chemin ( j'en est testé plusieurs) par ce que , les sauvegardes je souhaiterais les faire à la fermeture.
    Olla,

    faudrait que tu nous montres ce qu'il y a exactement dans sFullPath et sCopyFullPath.
    Et que tu fasses le test dans l'explorateur Windows : copier le fichier (ouvert) vers la même destination.

    Ceci dit, si ton appli est séparée de la base de données, tu n'auras plus de problème de base ouverte pendant la copie : il faut juste, avant de lancer la copie, que tu t'assures que tous les formulaires liés à des données soient bien fermés (ainsi, bien sûr que tout code qui accède à des données).
    Comment constater que la base de données est fermée ?
    - si, dans l'application, tous les formulaires liés aux données sont fermés,
    - si toutes les tables attachées et les requêtes basées dessus sont fermées,
    - si aucun code (VBA par DAO, ADO, commande SQL...) n'accède à aucune table, et
    - si tout objet (par exemple Dim db As DAO.Database) pointant vers la base est fermé (il faut un Set db = Nothing),
    il ne doit y avoir aucun fichier .ldb dans le dossier de la base de données.
    S'il existe, dans le même dossier, un fichier portant le même nom que la base, avec l'extension ".ldb", il y a encore un accès ouvert à cette base par quelqu'un.

    Sinon, (recherche dans la FAQ sur "fermeture d'Access")
    Il y a plusieurs astuces pour détecter que l'utilisateur quitte l'application. La plus courante consiste à avoir un formulaire toujours ouvert et caché. Tu l'ouvres au démarrage, tu le caches, il n'y a rien dessus, mais son évènement Form_Unload (ou Form_Close) déclenche la sauvegarde et autres opérations de sortie...

    Enfin, je sais que je suis lourd : je constate que ton cas (1 seul PC en tout) est particulier, mais, même si je développe une appli pour moi tout seul, je sépare toujours
    - la base de données (toutes dans les dossiers C:\Data\ChaqueClient\ChaqueProjet...) à sauvegarder 1 ou plusieurs fois/jour
    - de l'application (dans les dossiers C:\Sources\ChaqueClient\ChaqueProjet...) à sauvegarder 1 ou plusieurs fois/jour, si modifiée en tant que développeur
    Si je l'utilise moi même, je sépare
    - une copie de développement ci-dessus
    - d'une copie "qui marche", en tant qu'utilisateur (généralement dans C:\Program Files\MaBoite\MonProjet...). une seule copie de sauvegarde suffit
    Tout simplement parce qu'il arrive trop souvent en cours de développement que plus rien ne marche (et je ne peux plus utiliser la version précédente, qui était OK !).
    Et parce que je ne teste plus jamais une application qui est connectée à la vraie base de données en cours d'utilisation (trop dangereux aussi).
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  15. #15
    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 ,

    tu n'est pas lourd et je vais suivre des conseils pour les sauvergardes.

    Bon concernant le code :

    et ceci :
    faudrait que tu nous montres ce qu'il y a exactement dans sFullPath et sCopyFullPath.
    je ne suis pas sur de bien comprendre , je ne saurais montrer quoi que soit. je ne sais m'en servir... ( si seulement le codage execl acces se ressemblait un peu )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Et que tu fasses le test dans l'explorateur Windows : copier le fichier (ouvert) vers la même destination.
    cela fonctionne très bien , la base est ouverte mais sans formulaire ni état.

    j'ai bien attention a cà :
    Comment constater que la base de données est fermée ?
    - si, dans l'application, tous les formulaires liés aux données sont fermés,
    - si toutes les tables attachées et les requêtes basées dessus sont fermées,
    - si aucun code (VBA par DAO, ADO, commande SQL...) n'accède à aucune table, et
    - si tout objet (par exemple Dim db As DAO.Database) pointant vers la base est fermé (il faut un Set db = Nothing),
    il ne doit y avoir aucun fichier .ldb dans le dossier de la base de données.
    S'il existe, dans le même dossier, un fichier portant le même nom que la base, avec l'extension ".ldb", il y a encore un accès ouvert à cette base par quelqu'un.
    je crois que mes compétence me limite beaucoup !!

    j'ai aussi lu ce post , mais la non plus rien n'y fait

    je n'ai pas les capacités de voir d'ou vient l'erreur , ca me pénalise.

  16. #16
    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
    Nicko, bonjour,

    Comment afficher la valeur d'une variable, pendant l'exécution ?
    pour ce qui est de sFullPath et sCopyFullPath , avant d'exécuter ce code,
    - tu places le curseur ur la ligne (FileCopy...),
    - tu mets un point d'arrêt en appuyant sur F9 la ligne devient marron
    - tu exécutes normalement ton code pour lancer la copie.
    - lorsque l'exécution arrive sur cette ligne, elle s'arrête et affiche le code : la ligne en question est jaune,
    1- tu mets le pointeur de la souris au dessus de chaque variable. Après 1 ou 2 secondes, une bulle s'affiche avec la valeur de la variable
    sinon,
    2- tu peux cliquer sur chaque variable et appuyer sur [Maj+F9] : une boîte de dialogue affiche sa valeur,
    3- tu peux ouvrir la fenêtre d'exécution (avec Ctrl+G), et taper un ? suivi du nom de la variable, puis Entrée, ce qui affichera le résultat en dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ? sFullPath
    C:\DossierOrigine\NomBaseOrigine.mdb
    Quant à tout le bloc en dessous, l'essentiel est que tu ne dois pas voir le fichier .ldb (Locks Data Base), s'il n'y a aucun accès à cette base.
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  17. #17
    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,

    bon je propgresse doucement , je susi un peu plus à l'aie avec les codes , j'ai fractionner ma base ; applicatio/données

    j'ai testé ces codes avec modif sur un fomulaire à la fermeture , sur la base application qui me sauvergarde la base de données.

    malheuresmeent je rencontre maintenant cette erreur sur la dernière ligne , avec copyfile

    erreur 13 incomptibilié de type ! serait-ce au niveau de l'extensions du fichiers ??

    Je vous remercie en tous cas pour toute l'aide que vous m'avez données.

    A+

  18. #18
    say
    say est déconnecté
    Membre expérimenté
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 300
    Points
    1 300
    Par défaut
    Bonjour,
    je viens mettre mon grain de sel dans tout ça...non pas sur le code mais plus sur la méthode utilisée. Vous avez décider de conserver une sauvegarde ts les jours avec la date et tout. Il me semble que c super lourd notamment dans le temps (dans 1 mois tu auras 30 copies de tabse).

    au taf, nous utilisons un système différent qui nous permet d'avoir une sauvegarde par jour le temps d'une semaine, 4 sauvegardes d'une semaine sur un mois et un sauvegarde de chaque mois.

    ainsi au max, nous 7 + 4 + 12 = 23 sauvegardes dans un an.

    je sais pas si c'est clair mais c'était plus par rapport au choix d'incrémentation.

    A+
    Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain)
    _ _ _ _ _ _ _ _ _

    La planète ne nous appartient pas, elle nous a été prêtée par nos enfants
    _ _ _ _ _ _ _ _ _

    Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres

  19. #19
    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
    @ Papy tofalu :

    j'essaye ca , je vais pourvoir voir ou je vais mon erreur

    je vais bien finir par y arriver !!

    @ say :

    Je vais garder les sauvegarde à la fermeture , mais par contre je vais surement sauvergardé les données seulement.

  20. #20
    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
    remerciements et question

    Papy Turbo , c'est avec une joie immense , si, si je vous assure !!

    Je suis enfin arriver à faire fonctionner le code. ( reste un petit beug voir après..)

    je devais avoir fait des erreurs d'écriture dans le code à force je pense.



    je vais tacher de mettre l'état des lieux , pour expliquer ma situation.

    Donc au départ j'ai une base que j'ai fractionner en deux , par le menu d'access , outils , utilitaires de base de données , fractionner une base.

    donc une base application et une base données.

    Dans la page de code du formulaire qui me sert de ménu général , j'ai
    Mis ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    'code de sauvegarde
    Dim NomCopie As String
    Dim NomBDD As String
    Dim NomBDD1 As String
    NomBDD = "mabasedonnees"
     
       NomBDD1 = NomBDD & ".mdb"
        'Ajouter la date + heure + remettre l'extension
        NomCopie = NomBDD & Format(Now, "_yyyy_mm_dd__hh_nn") & ".mdb"
        FileCopy "I:\base" & "\" & NomBDD1, "I:\base\sauvegardes" & "\" & NomCopie
    c'est le code de papy turbo un peu remanier car j'avais un erreur sur dans le code len ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomCopie = Left (NomBDD, Len(NomBDD - 4))
    le code de PGZ ne fonctionne pas dansce cas parce que j'ai 2 bases , il faudrait changer la variable du chemin de la base a sauvegarder.
    Et puis il y avait une autre erreur sur cette ligne :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sCopyName = sName & Format(Now(), "yy mm dd','hh nn ss")
    Le fait de mettre avant le reste fait que le nom du fichier donne :
    nombase.mdb2005_11_08__23__10
    voilà, j'ai bien fait attention aux procdures evenemetielles du formulaire.



    Le bug :

    j'ai créer un bouton de commande sur le fomulaire, avec l'assitant, qui quitte l'application
    la sauvegarde se fait bien seulement , access ne se ferme pas réellement , il n'apparait plus à l'écran, mais est toujours dasn les processus en cours..
    de ce il est impossible de réouvrir la base , sans l'avoir redémarrer ou terminer le proccessus access.
    la base sauvegarder n'est cependant pas corrompu

    si l'on ferme d'abord le formulaire puis l'aplication tout est bon.

    je ne sais pas s'il il s'agit d'un problème de temps , pour faire la sauvegarde , ou s'il c'est un problème d'ordre de fermeture ??????????

    je pense pouvoir réglé cela par un code et faire un ordre de fermeture , une tempo risquerait d'être alétoire , car plus la base est grosse plus le temps de sauvegarde sera long.

    Qu'en pensez-vous ???

    En tous je remercie énormement Papy Turbo , pgz pour leur super aide !! merci aussi à say

    @ say : une des raison , qui me font faire une sauvegarde à la fermeture , c'est que la base pourra être beaucoup utilisé pendant un moi s puis moins , pendant 3 mois.
    mais a terme je diminuerai peut-être les sauvergardes à voir.

    Merci d'avoir suivi ce long post 8)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

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