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 :

Comment exporter les données d'une requête SQL vers un fichier Excel [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Comment exporter les données d'une requête SQL vers un fichier Excel
    Bonjour,

    Je vais probablement poser une question basique mais je ne m'en sors pas.

    En VBA Access, de définis requête SQL puis je l'affecte à un champ de type liste dans un formulaire.
    Et je voudrais exporter les données de la liste, vers un fichier Excel.
    Je pensais faire un DoCmd.OutputTo acOutputQuery... mais le souci c'est que je n'utilise aucune table ni aucune requête existante dans ma BD Access.

    Ensuite, j'ai tenté d'utiliser un ADODB.Recordset mais je ne vois pas comment transférer les données de mon Record vers le fichier Excel.

    Avez vous une solution simple svp ?

    Merci d’avance de votre aide

  2. #2
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Salut
    La méthode ici.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Merci Hyperion mais non (ou alors je n'ai pas compris)

    J'ai bien trouvé cette méthode mais elle nécessite d'utiliser un objet existant (une table ou une requête par exemple).
    Dans mon cas, je n'ai ni l'un ni l'autre.
    Du coup, j'ai essayé le Recordset mais il n'en veut pas.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Mon code actuel en méthode recordset mais il ne marche pas.
    Bug sur la ligne DoCmd
    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
    Private Sub Btn_Exporter_Click()
     
        'Déclaration des variables
        Dim Name As String
        Dim Chemin As String
        Dim Con As ADODB.connection
        Dim Jeu_Imp As ADODB.Recordset
     
        'Initialisation ADO
        Set Con = CurrentProject.connection
        Set Jeu_Imp = New ADODB.Recordset
     
        'Sélection des données
        Jeu_Imp.Open SQL, Con, adOpenForwardOnly, adLockReadOnly
     
        Chemin = "C:\Export\"
     
     
        Name = InputBox("Indiquez le nom du fichier à enregistrer :", "Exporter", "ListeECS_" & Replace(Date, "/", "-"))
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, Jeu_Imp.ActiveConnection, Chemin & Name & ".xls"
     
    End Sub

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    J'utilise une requête SQL pour créer une table temporaire
    J'utilise ma table temporaire dans la fonction d'export vers Excel
    Je supprime ma table temporaire

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 801
    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 801
    Points : 14 869
    Points
    14 869
    Par défaut
    bonsoir,
    J'utilise une requête SQL pour créer une table temporaire
    J'utilise ma table temporaire dans la fonction d'export vers Excel
    Je supprime ma table temporaire
    J'ai bien trouvé cette méthode mais elle nécessite d'utiliser un objet existant (une table ou une requête par exemple).
    Dans mon cas, je n'ai ni l'un ni l'autre.
    Du coup, j'ai essayé le Recordset mais il n'en veut pas.
    il serait intéressant de savoir d'où proviennent les données si tu n'utilises pas de tables: est-ce de la saisie directe depuis des contrôles du formulaire ?

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

Discussions similaires

  1. [MySQL-5.6] Exporter les résultats d'une requête SQL dans un fichier .sql ou .txt
    Par js8bleu dans le forum Requêtes
    Réponses: 1
    Dernier message: 17/09/2013, 10h13
  2. Réponses: 2
    Dernier message: 30/07/2009, 14h26
  3. Comment formater les résultats d'une requête sql
    Par hjulius dans le forum PL/SQL
    Réponses: 1
    Dernier message: 28/07/2009, 17h23
  4. Enregistrer les données d'une requête SQL Query sur une autre table
    Par LE MAHJONG dans le forum Bases de données
    Réponses: 4
    Dernier message: 23/09/2008, 20h02

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