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

Requêtes et SQL. Discussion :

Exportation Excel d'une requête dans le dossier de la base de données


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Exportation Excel d'une requête dans le dossier de la base de données
    Bonjour,

    Je débute avec ce projet sur Access, et en vois la fin (tout fonctionne parfaitement sur mon ordinateur) mais ne trouve pas de solution à mon dernier problème. J'ai dû créer une simple base de données répertoriant des personnes : la clé primaire est leur numéro de téléphone et j'ai plusieurs informations les concernant. Je dois, en cliquant sur un bouton "Enregistrer" dans un formulaire, exporter six requêtes au format excel (qui correspondent à des listes de personnes classées par zones géographiques), toujours sur le même fichier.
    Comme je l'ai dit, tout fonctionne sur mon ordinateur : j'ai enregistré mes six exportations et créé une macro associée au bouton "Enregistrer" qui utilise la fonction "ExécuterImporationExportationSauvegardée" six fois.

    Mon problème est le suivant : j'aimerais que ma base de données fonctionne quel que soit le PC sur lequel elle est copiée. Par exemple, que si le fichier BaseDeDonnees.accdb est enregistré dans D:\Mes Documents, l'enregistrement crée un dossier "D:\Mes Documents\Listes" dans lequel il enregistre mes six fichiers excel, toujours au même endroit. Il ne faut pas qu'on ait à ouvrir Excel, ni à confirmer six fois l'écrasement des fichiers.

    J'ai essayé de plusieurs manières, par exemple en créant une fonction générale :
    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
    Function Enregistrement_test()
    On Error GoTo Enregistrement_test_Err
     
        DoCmd.OutputTo acOutputQuery, "Liste1", "ExcelWorkbook(*.xlsx)", CurrentProject.Path & "\Listes\Liste1.xlsx", False, "", , acExportQualityPrint
        DoCmd.OutputTo acOutputQuery, "Liste2", "ExcelWorkbook(*.xlsx)", CurrentProject.Path & "\Listes\Liste2.xlsx", False, "", , acExportQualityPrint
        DoCmd.OutputTo acOutputQuery, "Liste3", "ExcelWorkbook(*.xlsx)", CurrentProject.Path & "\Listes\Liste3.xlsx", False, "", , acExportQualityPrint
        DoCmd.OutputTo acOutputQuery, "Liste4", "ExcelWorkbook(*.xlsx)", CurrentProject.Path & "\Listes\Liste4.xlsx", False, "", , acExportQualityPrint
        DoCmd.OutputTo acOutputQuery, "Liste5", "ExcelWorkbook(*.xlsx)", CurrentProject.Path & "\Listes\Liste5.xlsx", False, "", , acExportQualityPrint
        DoCmd.OutputTo acOutputQuery, "Liste6", "ExcelWorkbook(*.xlsx)", CurrentProject.Path & "\Listes\Liste6.xlsx", False, "", , acExportQualityPrint
     
     
    Enregistrement_test_Exit:
        Exit Function
     
    Enregistrement_test_Err:
        MsgBox Error$
        Resume Enregistrement_test_Exit
     
    End Function
    Puis je la fais exécuter par une macro lancée sur clic sur 'Enregistrer' (à ce propos, il faut bien utiliser l'action "ExécuterCode", tout simplement ?)
    Problème : "Microsoft Access ne peut pas enregistrer les résultats dans le fichier que vous avez sélectionné".

    Quelle est mon erreur, et comment arriver à mes fins proprement ?

    Merci d'avance !

  2. #2
    Membre régulier
    Homme Profil pro
    Ingénieur réseaux
    Inscrit en
    Février 2015
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseaux

    Informations forums :
    Inscription : Février 2015
    Messages : 45
    Points : 101
    Points
    101
    Par défaut
    Bonjour,
    Déjà un conseil : personnellement je ne fais jamais de clé primaire avec un numéro de téléphone!!!!

    Je ne comprends pas bien quel est ton erreur, peux-tu un peu plus résumer la chose stp?

    Cordialement.

    ZeRedDiamond.
    Cordialement.

    ZeRedDiamond

    I'm back after all these years !!!

    Mon blog personnel

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Résumé
    Je résume : comment faire pour que l'enregistrement de mes six listes soit fait automatiquement dans un sous-dossier "Listes" du dossier où se trouve ma base de données ? Que ces six fichiers excel soient automatiquement mis à jour s'ils existent déjà au bon emplacement, et qu'ils soient créés (avec le dossier "Liste") s'ils n'existent pas encore.

  4. #4
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 871
    Points : 3 451
    Points
    3 451
    Par défaut
    Bonjour lea.lea,

    Voici le code pour récupérer le chemin, créer un sous-dossier et enfin sauvegarder tes requêtes. A mettre dans un module si tu veux récupérer le code pour d'autre output:

    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
    Public Function fuRecupChemin() As String
    On Error GoTo GestionErreurs
     
        fuRecupChemin = CurrentProject.Path
     
    Exit Function
    GestionErreurs:
            MsgBox "Erreur dans fuRecupChemin" & " " & Err.Number & " " & Err.Description
    End Function
     
    Public Function fuCreerDossier(strDossier As String) As String
    On Error GoTo GestionErreurs
     
        fuCreerDossier = fuRecupChemin & "\" & strDossier 
        MkDir fuCreerDossier
     
    Exit Function
    GestionErreurs:
        Select Case Err.Number
            Case 75 'le dossier existe déjà
            Resume Next
        Case Else
            MsgBox "Erreur dans fuCreerDossier" & " " & Err.Number & " " & Err.Description
        End Select
    End Function
    Puis on reprend ta fonction avec l'ajout de la fonction fuCreerDossier:
    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
    Function Enregistrement_test()
    On Error GoTo Enregistrement_test_Err
     
        Dim strSortie as string
     
        strSortie = fuCreerDossier(LeNomDuSousRépertoireDésiré)
     
        DoCmd.OutputTo acOutputQuery, "Liste1", "ExcelWorkbook(*.xlsx)", strSortie & "\Liste1.xlsx", False, "", , acExportQualityPrint
        DoCmd.OutputTo acOutputQuery, "Liste2", "ExcelWorkbook(*.xlsx)", strSortie & "\Liste2.xlsx", False, "", , acExportQualityPrint
        DoCmd.OutputTo acOutputQuery, "Liste3", "ExcelWorkbook(*.xlsx)", strSortie & "\Liste3.xlsx", False, "", , acExportQualityPrint
        DoCmd.OutputTo acOutputQuery, "Liste4", "ExcelWorkbook(*.xlsx)", strSortie & "\Liste4.xlsx", False, "", , acExportQualityPrint
        DoCmd.OutputTo acOutputQuery, "Liste5", "ExcelWorkbook(*.xlsx)", strSortie & "\Liste5.xlsx", False, "", , acExportQualityPrint
        DoCmd.OutputTo acOutputQuery, "Liste6", "ExcelWorkbook(*.xlsx)", strSortie & "\Liste6.xlsx", False, "", , acExportQualityPrint
     
     
    Enregistrement_test_Exit:
        Exit Function
     
    Enregistrement_test_Err:
        MsgBox Error$
        Resume Enregistrement_test_Exit
     
    End Function
    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

Discussions similaires

  1. [AC-2007] Export résultat d'une requête dans Excel dans une feuille précise
    Par illight dans le forum VBA Access
    Réponses: 10
    Dernier message: 04/10/2013, 15h23
  2. [CR XI] export excel : mettre une formule dans un champ ?
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 27/09/2012, 11h21
  3. [AC-2007] Export excel d'une requête et effacement de données
    Par cvuillod dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 01/06/2012, 14h18
  4. Export Excel d'une requête paramétrée
    Par dut-dut dans le forum VBA Access
    Réponses: 4
    Dernier message: 08/09/2011, 14h44
  5. [MySQL] affichage d'une photo contenu dans un dossier upload et base de données
    Par keurdeloup45 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 29/01/2009, 16h39

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