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 :

export requête avec choix des champs à exporter


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Points : 75
    Points
    75
    Par défaut export requête avec choix des champs à exporter
    Bonjour à tous,

    Avant d'exporter le résultat d'une requête sur Excel, je voudrais que l'utilisateur puisse sélectionner les champs à exporter.

    Une aide svp, j'ai bien cherché mais pas trouvé !

    Merci d'avance

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonjour,

    A ta place, j'essaierai en codant tout cela, selon le scénario suivant:

    1. Trouver un moyen de faire sélectionner les colonnes par l'utilisateur. Si ta requête comporte toujours les mêmes colonnes, tu peux sans doute préparer une table locale avec ces noms de champs et un booléen. Il sera alors facile de créer un petit formulaire pour permettre à l'utilisateur de sélectionner ces colonnes.
      Si tu ne connais pas à l'avance les colonnes de ta requêtes, tu alimentes dynamiquement cette table locale en parcourant la collection Fields de ta requête.
    2. tu crées alors par code une requête qui sélectionne les champs demandés à partir de la requête initiale.
    3. tu exportes cette nouvelle requête.



    Y a peut être plus simple... mais c'est ce qui me vient à l'esprit pour le moment
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Points : 75
    Points
    75
    Par défaut
    Bonjour mout1234,

    Je n'arrive pas à mettre en pratique ta solution.

    Ma requête comportent toujours les mêmes champs :
    date de remise, date d'expédition, date de livraison, pays, code postal, délai théorique, délai réalisé.

    J'ai créé une table locale avec les mêmes noms de champs et un boléen.

    Le problème c'est que je ne vois pas la relation entre les deux, comment ma table peut être reliée à ma requête pour cocher ou décocher mes colonnes.

    Désolée, je me sens vraiment bête, peux-tu m'expliquer plus en détail s'il te plaît. Merci.

  4. #4
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonjour,


    1. Trouver un moyen de faire sélectionner les colonnes par l'utilisateur. Si ta requête comporte toujours les mêmes colonnes, tu peux sans doute préparer une table locale avec ces noms de champs et un booléen. Il sera alors facile de créer un petit formulaire pour permettre à l'utilisateur de sélectionner ces colonnes.

    Si on reste sur cette idée (y a plusieurs approches possibles), il faudrait créer une table locale, appelons-là tblSelectChamps - comportant deux champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    NomChamp (texte 64 caractères)
    Sélectionné (booléen)
    Tu initialises ta table avec le nom des champs de ta requête.

    Tu crées ensuite dans ton formulaire un sous-formulaire en mode continu basé sur cette table. L'utilisateur devra alors sélectionné les colonnes qu'il souhaite.



    2. tu crées alors par code une requête qui sélectionne les champs demandés à partir de la requête initiale.
    Je veux dire ici que tu crées, en VBA, dynamiquement le code SQL de ta requête, en tenant compte des champs que l'utilisateur aura sélectionné.

    QQ chose du genre (code écrit en direct dans ce message... non testé)
    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
    Dim sSQL as string
    Dim orst as DAO.Recordset 
    Dim oDB as DAO.DATABASE
    Dim oQry as DAO.QueryDef
    Set oDB = Currentdb()
    set oRst = oDB.OpenRecordset("SELECT NomChamp FROM TblSelectChamp WHERE Sélectionné = True")
     
    While not orst.EOF
         sSQL = sSQL & ", " &  NomChamp 
    Wend
     
    if sSQL = "" then exit function 'rien sélectionné
     
    sSQL = Mid(sSQL,2) 'virer la première virgule
     
     
    sSQL = "SELECT " & sSQL & " FROM MaRequete"
     
    set oQry = oDB.Querydefs("MaRequeteExportee")
    oQry.SQL = sSQL
     
    oQry.Close :set oqry = nothing
    '... reste plus qu'à exporter la requete MaRequeteExportee







    3. tu exportes cette nouvelle requête.
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/06/2014, 10h48
  2. [OL-2010] Export de calendriers : choix des champs
    Par sebfreu dans le forum Outlook
    Réponses: 0
    Dernier message: 20/12/2011, 11h49
  3. Réponses: 5
    Dernier message: 10/02/2010, 14h11
  4. Requête avec choix d'un champ à partir d'une liste déroulante
    Par Worms6969 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 17/03/2008, 14h53
  5. Problème de requête avec cumul des conditions sur un champ
    Par UtopieAmbiante dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/01/2006, 10h52

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