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 :

Mettre résultat requête SQL sur Excel [AC-2007]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Par défaut Mettre résultat requête SQL sur Excel
    Bonjour
    j'ai cherché sur le forum mais je n'ai pas réussi à mettre en oeuvre les différentes méthodes trouvées.

    Dans un formulaire j’appelle par un bouton une requête via VBA et je voudrais que ça s'affiche non dans une liste mais dans un classeur Excel (si c’est possible ?)

    voici mon code qui fonctionne en renvoyant le résultat dans une liste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub ExportExcel_Click()
        Dim testsql As String
        testsql = "SELECT Enfant_Sexe AS Civ ,  Enfant_Nom AS Nom, Enfant_Prenom AS Prénom ,Groupe,Transport,Transport "
        testsql = testsql & " FROM Table_Enfants,Table_Groupes,Table_Transport ;"
        Me.Liste16.RowSource = testsql
        Me.Liste16.Requery
    End Sub
    en vous remerciant de votre aide.

  2. #2
    Membre émérite
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Par défaut
    Bonjour joreveur
    méthode simple, sans mise en forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Ma_Requete", "lecteur\dossier\nom_fichier.xls", 0
    Il y a un excellent tuto http://cafeine.developpez.com/access...l/excel/#LVI-A

  3. #3
    Membre très actif
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Par défaut
    Bonjour et merci

    je vais essayer ce soir. "Ma_Requete" je dois le remplacer par "testsql" ?

    Cordialement

  4. #4
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut
    Oui, c'est bien ça.

    Note que la requête ci-dessus(testsql ) n'est pas bonne: c'est une requête sur 3 tables, et tu n'as pas indiqué les conditions de liaison entre les tables. Tu vas obtenir un produit cartésien, avec un très grand nombre de lignes.

    La bonne requête serais du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Enfant_Sexe AS Civ ,  Enfant_Nom AS Nom, Enfant_Prenom AS Prénom ,Groupe,Transport,Transport 
    FROM Table_Enfants,Table_Groupes,Table_Transport 
    WHERE Table_Enfants.Id_Enfant=Table_Groupes.Id_Enfant
    etc...

  5. #5
    Membre très actif
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Par défaut
    Bonsoir

    oui j'avais simplifié la requête et je n'avais pas mis de tests de relation entre les tables.

    concernant l'export Excel, cela me trenvoie un message qu'Access n'a pas pu trouver l'objet " testsql". il manquerait quelquechose dans ma syntaxe ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "testsql", "C:\temp\export.xls",0
    merci
    Images attachées Images attachées  

  6. #6
    Membre Expert Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Par défaut
    Bonjour.
    Il faut enlever les " qui encadrent testsql, sinon, Access cherche une requête nommée "testsql" dans les objets requête, alors qu'il s'agit de la variable qui a été déclarée plus haut.
    Cordialement.

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

Discussions similaires

  1. Afficher résultat requête SQL sur un mois
    Par chris52 dans le forum Requêtes
    Réponses: 11
    Dernier message: 25/09/2014, 12h02
  2. Requête SQL sur le résultat d'une autre requête
    Par rec82 dans le forum Bases de données
    Réponses: 10
    Dernier message: 12/12/2008, 17h40
  3. mettre une requête SQL sur deux lignes
    Par MAMANHOU dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/11/2008, 15h37
  4. [VBA] Requête SQL sur un fichier excel ?
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/01/2006, 23h06
  5. Réponses: 3
    Dernier message: 11/01/2006, 18h35

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