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

Macros Access Discussion :

Copie de la Base de Données [AC-2019]


Sujet :

Macros Access

  1. #1
    Membre du Club
    Homme Profil pro
    passionné
    Inscrit en
    Octobre 2018
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : passionné

    Informations forums :
    Inscription : Octobre 2018
    Messages : 115
    Points : 61
    Points
    61
    Par défaut Copie de la Base de Données
    Bonjour à tous

    J'ai créé un bouton sortie pour quitter ma base de données mais j'aurais aimé également qu'il me lance une copie de la base dans un autre répertoire afin en quelques sorte de faire une sauvegarde. J'ai essayé de passé par exécuter commande menu, exporter access mais j'ai un message d'erreur. Si je sélectionne un objet comme le dit le message d'erreur, il me fait taper 2 fois le mot de passe de la base, me fait confirmer de remplacer l'objet en question mais pas le reste de la base, en fait il n'y a pas grand chose d'automatisé alors que c'est ce que je recherche. Si quelqu'un pouvez me donner un petit coup de main. Merci d'avance.

    Nom : Capture.JPG
Affichages : 139
Taille : 38,4 Ko

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    essaie avec CopyFile dans Scripting.FileSystemObject
    un exemple de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Dim fso As Object
     
        Dim laBase As String
        Dim LaSauv As String
     
        laBase = Application.CurrentDb.Name
        LaSauv = CurrentProject.Path & "\Sauve\" & CurrentProject.Name
        Set fso = CreateObject("Scripting.FileSystemObject")
     
        fso.CopyFile laBase, LaSauv
        Set fso = Nothing
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre du Club
    Homme Profil pro
    passionné
    Inscrit en
    Octobre 2018
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : passionné

    Informations forums :
    Inscription : Octobre 2018
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    Tout d'abord je te remercie de t'être penché sur mon problème mais en fait je ne suis pas un as et je ne sais quoi faire de ta formule, en gros je la met ou ? pour l'instant mon bouton sortie effectue une sauvegarde des fiches des renseignements, et quitte access. Je suis allé sur le lien copyfile mais je n'y comprend pas grand chose . le chemin de destination de la sauvegarde serai
    FileSystemObject.CopyFile "C:\Drive\ACCES RESERVE MARC ET DOMINIQUE\UFAC ARDECHE.accdb", "c:\tempfolder\" mais franchement mes compétences sont assez limitées.


    Nom : Capture2.JPG
Affichages : 120
Taille : 39,6 Ko

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    on ne peut malheureusement pas le faire à partir des instructions de Macro Access ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    il existe tout de même une solution:
    on ne peut pas le faire uniquement en Macro Access vu que ce langage, très limité, offre très peu de possibilités pour manipuler les fichiers et objets, il faut obligatoirement passer par les procédures VBA.
    Ce n'est pas facile mais pas impossible pour autant que le répertoire dans lequel tu veux sauvegarder ta base est bien autorisée en écriture, sinon tu risques d'avoir l'erreur 70 "permission refusée".

    Tu dois copier ces lignes dans un nouveau module et créer une fonction que tu appelles Sauvegarde, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim fso As Object
    Dim laBase As String
    Dim LaSauv As String
     
    laBase = Application.CurrentDb.Name
    LaSauv = "c:\tempfolder\" & CurrentProject.Name
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.CopyFile laBase, LaSauv
     
    Set fso = Nothing
    et tu suis les instructions du document joint pour savoir comment créer un nouveau module VBA:

    CreationModuleSauvegarde.pdf

    Application.CurrentDb.Name correspond au nom complet de ta base avec le chemin, autrement dit: "C:\Drive\ACCES RESERVE MARC ET DOMINIQUE\UFAC ARDECHE.accdb"
    CurrentProject.Name est le nom de ta base sans le chemin: "UFAC ARDECHE.accdb"
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  6. #6
    Membre du Club
    Homme Profil pro
    passionné
    Inscrit en
    Octobre 2018
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : passionné

    Informations forums :
    Inscription : Octobre 2018
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    Merci pour tout ses renseignements, je vais étudier cela de pret. A suivre

    Je doit pas être bien loin mais ça bug, je m'en douté un peu car dès l'enregistrement la ligne été déjà en rouge mais en comparant je n'est rien trouvé d'anormal. en revanche le surligné en jaune est apparu lorsque j'ai lancé la fermeture et qu'il y a eu une erreur? L'exportation des fiches de renseignements ne pose pas de problème c'est après que ça bloque


    Nom : Capture.JPG
Affichages : 173
Taille : 44,2 Ko


    Nom : 3.jpg
Affichages : 113
Taille : 57,0 Ko

    Bon j'ai rajouté les double guillemets qui faisait l'erreur sur le module mais maintenant j'ai ce message

    Nom : 5.JPG
Affichages : 116
Taille : 23,5 Ko

    pourtant c'est la même destination que mes fiches de renseignement

  7. #7
    Membre du Club
    Homme Profil pro
    passionné
    Inscrit en
    Octobre 2018
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : passionné

    Informations forums :
    Inscription : Octobre 2018
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    Bon j'ai supprimer toutes les commandes de ma macro pour ne laisser que celle qui nous concerne. J'ai vérifié le chemin

    Nom : 6.JPG
Affichages : 120
Taille : 92,9 Ko


    Il me dit chemin d'accès introuvable

    Nom : 5.JPG
Affichages : 130
Taille : 23,5 Ko

    et si je clique sur débogage

    Nom : 7.JPG
Affichages : 112
Taille : 41,5 Ko

  8. #8
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    il n'y avait pas besoin de modifier le code d'origine...
    comme je le disait précédemment:
    Application.CurrentDb.Name correspond au nom complet de ta base avec le chemin, autrement dit: "C:\Drive\ACCES RESERVE MARC ET DOMINIQUE\UFAC ARDECHE.accdb"
    CurrentProject.Name est le nom de ta base sans le chemin: "UFAC ARDECHE.accdb"
    donc Access trouve les noms dans ces 2 objets et ce sans erreur et si le nom de la base change ou si il est déplacé, cela se fera automatiquement.

    pour ce qui concerne le message d'erreur, il indique qu'un chemin est introuvable, il faut vérifier si C:\tempfolder\ existe bien
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  9. #9
    Membre du Club
    Homme Profil pro
    passionné
    Inscrit en
    Octobre 2018
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : passionné

    Informations forums :
    Inscription : Octobre 2018
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    Re

    C'est bon j'ai trouvé le PB ça marche impeccable merci encore pour tout.

    DG

  10. #10
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    C'est bon j'ai trouvé le PB ça marche impeccable
    et quel était-il ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  11. #11
    Membre du Club
    Homme Profil pro
    passionné
    Inscrit en
    Octobre 2018
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : passionné

    Informations forums :
    Inscription : Octobre 2018
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    En fait sur les 2 lignes il faut mettre les chemin complet
    sur la 1° la ou se trouve le fichier et sur la seconde la ou on veux l'envoyer. Comme il s'agit d'une base présente sur plusieurs PC j'ai créé autant de module car ces fichiers ne sont pas forcement placé au meme endroit sur les PC. je les ai simplement numéroté sauvegarde1() sauvegarde2() .....

    Je tiens vraiment à re remercier surtout pour ton petit tuto que tu ma envoyé en PDF qui m'a permis de réussir.
    Merci merci et merci

    Nom : Capture10.JPG
Affichages : 150
Taille : 86,8 Ko

  12. #12
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    En fait sur les 2 lignes il faut mettre les chemin complet
    sur la 1° la ou se trouve le fichier et sur la seconde la ou on veux l'envoyer.
    c'est pourtant bien ce que j'ai fait (d'ailleurs j'ai testé le code avant de te l'envoyer)...
    Comme il s'agit d'une base présente sur plusieurs PC j'ai créé autant de module car ces fichiers ne sont pas forcement placé au meme endroit sur les PC.
    Ce n'est pas un problème si tu n'avais pas modifié mon code, tout le moins pour la base à copier.

    Je te le redis pour la 3ème fois: tu n'as pas besoin de mettre en "dur" le chemin de la base à copier, qui comme tu l'as constaté, peut changer d'un PC à l'autre.
    Il fallait que tu laisses Application.CurrentDb.Name pour la base à copier (LaBase) car cette variable correspond au nom complet de ta base avec le répertoire, autrement dit tu auras soit "C:\Drive\ACCES RESERVE MARC ET DOMINIQUE\UFAC ARDECHE.accdb", soit "C:\Users\DOMINIQUE GASSION\Desktop\Bdd\UFAC ARDECHE.accdb" ou autre chose pour un 3ème PC, cela changera automatiquement indépendamment du PC sur lequel le code sera lancé et CurrentProject.Name correspond au nom de la base: "UFAC ARDECHE.accdb" précédé du répertoire de la sauvegarde. Cela dit, tu fais comme tu veux, c'est ton application après tout ...

    La seule chose qui avait à changer "en dur" était le répertoire de la sauvegarde (LaSauve) sur chaque PC puisque, visiblement, il est différent d'un PC à l'autre, ce que je trouve dommage.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  13. #13
    Membre du Club
    Homme Profil pro
    passionné
    Inscrit en
    Octobre 2018
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : passionné

    Informations forums :
    Inscription : Octobre 2018
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    je vais essayer de rectifier le tir

    Maj

    bon effectivement sans toucher à ton code cela fonctionne seulement tempfolder n'est pas la destination ou je veux qu'il aille je veux qu'il aille à "C:\Drive\ACCES RESERVE MARC et DOMINIQUE\"

  14. #14
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    comme je le disais (encore) dans mon post précédent, tu peux mettre le chemin en dur pour la destination de la sauvegarde sur chaque PC:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LaSauv = "C:\Drive\ACCES RESERVE MARC et DOMINIQUE\" & CurrentProject.Name
    tu pourrais aussi passer par une table paramètre: en supposant que la table s'appelle "TblParamChemin" et que le champ s'appelle "Nomchemin", on peut récupérer le chemin via la fonction Dlookup, après il suffit de changer le code précédent par celui-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        ' on va chercher le chemin de sauvegarde dans la table paramètre
        LaSauv = DLookup("Nomchemin", "TblParamChemin")
        ' on ajoute un antislash à la fin si il est manquant
        LaSauv = LaSauv & IIf(Right(LaSauv, 1) <> "\", "\", "") & CurrentProject.Name
    il faut juste penser à mettre un chemin par défaut dans cette table ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  15. #15
    Membre du Club
    Homme Profil pro
    passionné
    Inscrit en
    Octobre 2018
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : passionné

    Informations forums :
    Inscription : Octobre 2018
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    Je vais laisser comme cela cela fonctionne très bien merci encore pour tout tes conseils

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

Discussions similaires

  1. faire une copie d'une base de données
    Par griese dans le forum Oracle
    Réponses: 4
    Dernier message: 17/11/2006, 16h22
  2. Copie d'une base de données
    Par da_latifa dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 27/03/2006, 12h27
  3. Copie d'une base de données (Sécuritée)
    Par Mawashigeri dans le forum Outils
    Réponses: 3
    Dernier message: 27/02/2006, 20h03
  4. Réponses: 7
    Dernier message: 28/10/2005, 10h14
  5. Réponses: 5
    Dernier message: 08/07/2005, 13h10

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