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 :

exporter le résultat d'une recherche multi-critère ?


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 10
    Points : 11
    Points
    11
    Par défaut exporter le résultat d'une recherche multi-critère ?
    Bonjour, j'ai suivi la méthode de recherche multi-critères proposée sur ce site. Après quelques difficultés étant donné que je débute sur Access, j'ai finalement réussi à l'adapter à mes besoins et à la modifier légèrement.
    J'aimerais maintenant pouvoir créer une commande qui exporte le résultat de la recherche multi-critère qui s'affiche à l'écran dans un fichier Excel (seulement le résultat et non la table entière). Je souhaite réaliser ceci sous Access 2000.
    Quelqu'un a t-il une solution ? (J'ai essayé de combiner des propositions trouvées sur le site, mais pour le moment je n'arrive à rien de très probant).

  2. #2
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour,
    Puisque tu as déjà ta requête de faites, pourquoi ne pas simplement l'utiliser directement pour exporter uniquement le résultat vers Excel
    Inspire toi de ça:
    http://access.developpez.com/faq/?page=Excel#ExpExclReq

    En espérant répondre à ton besoin.
    Bonne continuation.

  3. #3
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Re,
    De façon à faire profiter tout le monde de ton problème
    J'avais repéré la solution que tu proposes, mais je rencontre un problème car le débogueur m'indique "Erreur de compilation
    Type défini par l'utilisateur non défini" et surligne "Dim qd As QueryDef".
    As tu vérifier que la la librairie Microsoft DAO xxx Object Library soit bien cochée dans Outils > Références (dans l'éditeur de code)
    Je pense qu'après ça, tu pourras mettre le Tag

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 10
    Points : 11
    Points
    11
    Par défaut export de l'ensemble de la table et non du résultat
    Le code fonctionne effectivement de cette façon. En m'inspirant de la solution de Gaël Donat "Exporter le résultat d'une requête sous Excel", la commande exporte l'ensemble de la table et non le résultat de la requête. Je commets certainement une erreur, mais impossible de savoir à quel moment.
    Voici ce que je tape (sachant que ma table se nomme "formations"):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Commande155_Click()
    Dim qd As QueryDef
    Set qd = CurrentDb.CreateQueryDef("Requete_Temporaire", "Select * From formations")
    SQL = SQL & ";"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "Requete_Temporaire", "C:\Documents and Settings\tl\Bureau\fichier.xls"
    DoCmd.DeleteObject acQuery, "Requete_Temporaire"
     
    End Sub
    J'ai tenté plusieurs modifications mais sans succès.

  5. #5
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour,
    SQL = SQL & ";"
    Ici ta variable SQL te sers à quoi

    Set qd = CurrentDb.CreateQueryDef("Requete_Temporaire", "Select * From formations")
    Sauf erreur, mais ici, tu crée une requête en sélectionnant l'ensemble des données de ta table formations
    Donc ça me semble normal, que lors de l'exportation ce soit l'ensemble des données qui soit exporter dans Excel
    Essai de créer une requête manuellement et ensuite tu n'utilise que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "MaRequête _
    ", "C:\Documents and Settings\tl\Bureau\fichier.xls"

  6. #6
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 189
    Points : 54
    Points
    54
    Par défaut
    Salut,

    j ai le meme pb, et la librairie Microsoft DAO Object Library est coché.

    Meme pb sauf que c est une recherche sur 2 tables, basée sur une requete "Suchen" liant les 2 tables(n incluant pas TOUS les champs des 2 Tables). Cette requete exist deja.


    Moi j ai tape ca et ca me surligne aussi la 3e ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim qd As QueryDef
    Set qd = CurrentDb.CreateQueryDef("Suchen", "Select * FROM Übersicht LEFT JOIN Fehler ON Übersicht.idScheiben=Fehler.idScheiben")
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "Suchen", "c:\Documents and Settings\fichier.xls"
    DoCmd.DeleteObject acQuery, "Suchen"

  7. #7
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour fsautejeau
    Moi j ai tape ca et ca me surligne aussi la 3e ligne
    Oui, c'est bien....mais quel message d'erreur as tu sur cette ligne

  8. #8
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 189
    Points : 54
    Points
    54
    Par défaut
    Apparemment la bdd ne connait pas l'objet Suchen, qui est pourtant ma requete liée a mon form de recherche.

  9. #9
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Juste comme ça, tu es sur que tu à bien créer une requête avec cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set qd = CurrentDb.CreateQueryDef("Suchen", "Select * FROM Übersicht LEFT JOIN Fehler ON _
     Übersicht.idScheiben=Fehler.idScheiben")
    Exécute là seule et regarde le résultat

  10. #10
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 10
    Points : 11
    Points
    11
    Par défaut Pb pour créer une requête liée au résultat de la recherche
    Je comprends le principe de créer une requête manuellement pour après pourvoir l'exporter, mais comment s'y prendre ? En effet, je n'arrive pas à trouver le nom de la requête qui donne le résultat de la recherche dans la zone de liste "LstResults". J'ai essayé avec "LstResults.Rowsource", "Me.LstResult.Requery", "SQL", "Me.LstResults.RowSource", ... mais sans résultats. Je me suis orienté, grâce au F.A.Q vers une solution, mais là encore j'ai un problème pour trouver le nom de la requête. Cette requête n'existe d'ailleurs qu'en code, elle n'existe pas dans le menu "Requêtes", et je n'arrive pas à trouver le nom valide ou à créer une requête exportable dont la source est "LstResults".
    Voici vers quoi je me suis orienté, mais sans succès:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Commande155_Click()
    Dim qdf As DAO.QueryDef
    Dim rcs As DAO.Recordset
    Set qdf = CurrentDb.QueryDefs("????")
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "Nom_requête", _
    "C:\Documents and Settings\tl\Bureau\fichier.xls"
    Que faire ? Il s'agit certainement d'un problème de lien logique, mais impossible de le régler ou d'avoir une idée de la direction à prendre.

  11. #11
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Si je ne me trompe pas, lorsque tu crée ta requête de recherche multi-critéres, au fur et à mesure de tes choix tu crée celle ci sous la forme:
    sSQL = sSQL & ..........
    Donc à la fin, ta variable sSQL contient bien l'ensemble de ta requête.

    Donc à partir de là, n'est-il pas possible de récupérer cette variable pour t'en servir dans l'export

    [EDIT] Sinon as tu regarder ce complément au tuto
    http://access.developpez.com/faq/?page=TAForm#PlusCaf

  12. #12
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 10
    Points : 11
    Points
    11
    Par défaut Exportation réussie
    Merci pour ton aide Free Access. J'ai enfin réussi à créer une requête,. Certaines choses m'avaient échappé dans le complément que tu m'as indiqué.
    Voilà ce que ça donne (création d'une requête temporaire et export en fichier excel):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Commande155_Click()
     
    Dim SQL As String
    SQL = Me!lstResults.RowSource
    CurrentDb.CreateQueryDef "resultats", SQL
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "resultats", "C:\Documents and Settings\tl\Bureau\resultats"
    DoCmd.DeleteObject acQuery, "resultats"
     
    End Sub
    Merci à tous pour l'aide trouvée sur le site, et tout particulièrement à FreeAccess.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/01/2010, 09h11
  2. Effectuer une recherche multi-critères
    Par Freud44 dans le forum C++Builder
    Réponses: 1
    Dernier message: 17/12/2008, 08h41
  3. [Exporter les résultats d'une recherche vers Word
    Par ludovicparis dans le forum Access
    Réponses: 10
    Dernier message: 04/04/2007, 09h11
  4. Traiter le résultat d'une recherche multi-critères
    Par draxweb dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 15/03/2007, 19h00
  5. Trier les réponses d'une recherche multi-critères
    Par bétécé dans le forum Access
    Réponses: 6
    Dernier message: 25/01/2007, 09h56

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