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
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
Bonjour,
A ta place, j'essaierai en codant tout cela, selon le scénario suivant:
- 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.- tu crées alors par code une requête qui sélectionne les champs demandés à partir de la requête initiale.
- 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.
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.
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
Tu initialises ta table avec le nom des champs de ta requête.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 NomChamp (texte 64 caractères) Sélectionné (booléen)
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.
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é.2. tu crées alors par code une requête qui sélectionne les champs demandés à partir de la requête initiale.
QQ chose du genre (code écrit en direct dans ce message... non testé)
'... reste plus qu'à exporter la requete MaRequeteExportee
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
3. tu exportes cette nouvelle requête.
............................................................................................
Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager