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

Access Discussion :

Passer les critères d'un filtre dans une requete pour envoyer des données dans un classeur Excel


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2003
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 21
    Points : 24
    Points
    24
    Par défaut Passer les critères d'un filtre dans une requete pour envoyer des données dans un classeur Excel
    Bonjour,

    je cherche une solution pour envoyer des données filtrées dans un formulaire avec la fonction Me.FilterOn, dans un classeur Excel.

    J'ai un multiFiltres qui fonctionne très bien, et dont je stocke le résultat dans un variable String appelée "filtre", et que j'active avec la fonction suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Me.Filter = filtre
        Me.FilterOn = True
    Maintenant, j'aimerais utiliser la variable "filtre" pour pouvoir exporter les mêmes données affichées sur mon formulaire dans une feuille sur Excel 2003.

    J'ai essayé le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub CMDExportDonnees_Click()
     
            Dim SQL_exp As String
            SQL_exp = "SELECT * FROM T_Identification WHERE " & filtre
            MsgBox SQL_exp
            DoCmd.TransferSpreadsheet acExport, 8, "SQL_exp", "J:\Base de données\Sambo\TableauCombatSamboSportif.xls"
     
    End Sub
    C'est la première fois que je dois utiliser ce genre de fonction. Votre aide me sera très précieuse. Merci d'avance.

    Sylvain

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Effectivement TransferSpreadSheet n'accepte que les NOMS de table ou de requête.
    Donc il faudrait créer une table ou requête temporaire avant de transférer les données comme par exemple (je propose une requête ici):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            Dim reqexport As DAO.QueryDef
            Dim SQL_exp As String
            SQL_exp = "SELECT * FROM T_Identification WHERE " & filtre
            Set reqexport = CurrentDb.CreateQueryDef("nouvelreq", SQL_exp)
            DoCmd.TransferSpreadsheet acExport, , "nouvelreq", "J:\Base de données\Sambo\TableauCombatSamboSportif.xls"
            CurrentDb.QueryDefs.Delete "nouvelreq"
    Bonne continuation
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/07/2015, 21h10
  2. Réponses: 3
    Dernier message: 28/03/2015, 09h15
  3. Réponses: 2
    Dernier message: 04/06/2009, 14h49
  4. [MySQL] Php, je ne comprends pas comment faire pour introduire des données dans une table
    Par Liondd dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 14/12/2006, 12h53
  5. Rassembler des données dans une requete
    Par energies dans le forum Access
    Réponses: 2
    Dernier message: 31/03/2006, 12h39

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