Requête multicritères avec listing et export
kakashingo
Messages postés
4
Statut
Membre
-
Leepao Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Leepao Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Tout d'abord merci pour le site car j'y ai trouve plein d'information et de code tres utiles. Mon niveau en VBA est quasi nul
J'ai un créé un formulaire de recherche multicritère sous access qui filtre mon formulaire.
Je voudrais pouvoir exporter ces données vers excel. Mais je n'exporte que le formulaire entier
Je souhaiterai pouvoir choisir quels champs exporter lors de mon filtre.
Mon niveau en vba ne me permet pas encore de trouver une solution.
Toute aide est la bienvenue!
PS j'ai lu le tuto de cafeine sur excel ---> [url]https://cafeine.developpez.com/access/tutoriel/excel/[/url]
J'ai essayer la methode automation mais ça m'extrait le formulaire entier
Mon Bouton Chercher
ET pour le bouton extraction excel j'ai copié celui de "Automation" de cafeine en l'adaptant mais ça extrait tout
merci a tous!
Tout d'abord merci pour le site car j'y ai trouve plein d'information et de code tres utiles. Mon niveau en VBA est quasi nul
J'ai un créé un formulaire de recherche multicritère sous access qui filtre mon formulaire.
Je voudrais pouvoir exporter ces données vers excel. Mais je n'exporte que le formulaire entier
Je souhaiterai pouvoir choisir quels champs exporter lors de mon filtre.
Mon niveau en vba ne me permet pas encore de trouver une solution.
Toute aide est la bienvenue!
PS j'ai lu le tuto de cafeine sur excel ---> [url]https://cafeine.developpez.com/access/tutoriel/excel/[/url]
J'ai essayer la methode automation mais ça m'extrait le formulaire entier
Mon Bouton Chercher
Private Sub Commande112_Click() f = "" If Not IsNull(Me.Rréseau) And Me.Rréseau <> "" Then f = "Porteur LIKE ""*" & Me.Rréseau & "*""" End If If Not IsNull(Me.Rétat) And Me.Rétat <> "" Then If f <> "" Then f = f & " AND [Etat du dossier] = """ & Me.Rétat & """" Else f = "[Etat du dossier] = """ & Me.Rétat & """" End If End If If Not IsNull(Me.Rdate1) And Me.Rdate1 <> "" And Not IsNull(Me.Rdate2) And Me.Rdate2 <> "" Then If f <> "" Then f = f & " AND ([Date d'émission]) BETWEEN " & (Me.Rdate1) & " AND " & CLng(Me.Rdate2) & "" Else f = "CLng([Date d'émission]) BETWEEN " & CLng(Me.Rdate1) & " AND " & CLng(Me.Rdate2) & "" End If End If Me.Filter = f Me.FilterOn = True
ET pour le bouton extraction excel j'ai copié celui de "Automation" de cafeine en l'adaptant mais ça extrait tout
merci a tous!
A voir également:
- Requête multicritères avec listing et export
- Export favoris chrome - Guide
- Export favoris firefox - Guide
- Requête sql pix - Forum Python
- Export sms android - Guide
- Faire un listing - Guide
3 réponses
Bonjour,
Je suis dans le même cas que vous, si jamais quelqu'un a la solution, qu'il n'hésite pas à la partager.
Merci :)
Yannick.
Je suis dans le même cas que vous, si jamais quelqu'un a la solution, qu'il n'hésite pas à la partager.
Merci :)
Yannick.
Bonjour à tous,
J'ai finalement trouvé la réponse donc si d'autres cherchent encore, voici ce qu'on m'a envoyé :
-------------------------------------------------------------------------------------------------------
Dans le code du bouton Exporter vers Excel, tu déclares un recordset ( Rec )
qui pointe sur une table "NomDeLaTable".
C'est donc normal que tu n'aies pas de filtrage des enregistrements.
Tu pourrais utiliser une méthode CreateQueryDef pour créer une requête qui reprendrait le filtre, mais cela risque de compliquer.
Il y a une autre possibilité en utilisant la propriété RecordsetClone du formulaire.
Les déclarations sont :
Il vaut mieux déclarer la variable Rec au préalable. Cela peut fonctionner sans, mais c'est plus fiable.
Le recordset devient une copie du formulaire et ne contient que les enregistrements filtrés.
Autre remarque :
Pendant la génération du fichier Excel, l'utilisateur peut se demander si le programme tourne encore.
Dans ce cas, au début de l'exportation, tu écris la commande DoCmd.Hourglass True, cela affiche le sablier.
N'oublies pas de placer la commande DoCmd.Hourglass False à la fin du traitement sinon le curseur restera un sablier.
-------------------------------------------------------------------------------------------------------
En gros, il faut juste changer, par rapport au tuto de caféine,
le code :
par le code :
Chez moi ça fonctionne.
A+
J'ai finalement trouvé la réponse donc si d'autres cherchent encore, voici ce qu'on m'a envoyé :
-------------------------------------------------------------------------------------------------------
Dans le code du bouton Exporter vers Excel, tu déclares un recordset ( Rec )
qui pointe sur une table "NomDeLaTable".
C'est donc normal que tu n'aies pas de filtrage des enregistrements.
Tu pourrais utiliser une méthode CreateQueryDef pour créer une requête qui reprendrait le filtre, mais cela risque de compliquer.
Il y a une autre possibilité en utilisant la propriété RecordsetClone du formulaire.
Les déclarations sont :
Dim rec As Recordset
Set rec = Me.RecordsetClone
Il vaut mieux déclarer la variable Rec au préalable. Cela peut fonctionner sans, mais c'est plus fiable.
Le recordset devient une copie du formulaire et ne contient que les enregistrements filtrés.
Autre remarque :
Pendant la génération du fichier Excel, l'utilisateur peut se demander si le programme tourne encore.
Dans ce cas, au début de l'exportation, tu écris la commande DoCmd.Hourglass True, cela affiche le sablier.
N'oublies pas de placer la commande DoCmd.Hourglass False à la fin du traitement sinon le curseur restera un sablier.
-------------------------------------------------------------------------------------------------------
En gros, il faut juste changer, par rapport au tuto de caféine,
le code :
Set rec = CurrentDb.OpenRecordset("Clients", dbOpenSnapshot)
par le code :
Dim rec As Recordset
Set rec = Me.RecordsetClone
Chez moi ça fonctionne.
A+
Je suis dans le même cas que toi avec le même Tuto de caféine que j'ai adapté.
Même un état moi ça m'irai bien...
Si tu as trouvé entre temps peux-tu m'aider.
Merci par avance.
Patrick.