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 :

Problème de filtre formulaire sous formulaire


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 59
    Points : 50
    Points
    50
    Par défaut Problème de filtre formulaire sous formulaire
    Bonjour,

    Encore certainement un problème de syntaxe sur un filtre, mais je ne trouve pas.

    Je veux faire apparaitre dans un sous-formulaire les données que j'ai au préalable choisies dans mon formulaire principal.

    Si je choisie dans ma liste déroulante, une référence, le code fonctionne impeccablement bien
    Si je choisie le mois ou l'année avec mon champ ref null, ça fonctionne.

    Dés lors qu'il y a 2 voire 3 conditions, ça ne fonctionne plus.

    Petite précision, La base est en cours de création et pour la liste déroulante " mois", cette dernière est issue d'une table fixe que j'ai créée avec tous les mois de l'année dans le but d'avoir déjà les mois tries

    Merci pour votre aide

    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
    23
    24
    25
    26
    27
    28
    29
    30
    Private Sub btnChercherMois_Click()
     Dim strFiltre As String
     
    ' Filtre sur reference
     
       If Not IsNull(Me.cmbrefMois) Then
        strFiltre = "([Produit]='" & Me.cmbrefMois & "')"
    End If
     
     
    ' filtre sur année
     
    If Not IsNull(Me.cmban) Then
       strFiltre = "([Annee]='" & Me.cmban & "')"
     
      End If
     
      'filtre sur mois
     
      If Not IsNull(Me.cmbmois) Then
      strFiltre = "([Mois]='" & Me.cmbmois & "')"
         End If
     ' Appliquer le filtre dans le sous-form.
    With Me.sfregroupement_mensuel.Form
       .Filter = strFiltre
       .FilterOn = True
    End With
     
     
    End Sub

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 652
    Points : 34 356
    Points
    34 356
    Par défaut
    Salut,

    vu que tu ecrases continuellement ta variable strFiltre, Access n'applique in fine que le dernier filtre

    Il te faut pour cela completer ton strFiltre plutot que de l'ecraser :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Private Sub btnChercherMois_Click()
     Dim strFiltre As String
     
    ' Filtre sur reference
     
       If Not IsNull(Me.cmbrefMois) Then
        strFiltre = "([Produit]='" & Me.cmbrefMois & "')"
    End If
     
     
    ' filtre sur année
     
    If Not IsNull(Me.cmban) Then
       if strFiltre ="" Then
           strFiltre = "([Annee]='" & Me.cmban & "')"
      Else
           strFiltre = strFiltre & " AND ([Annee]='" & Me.cmban & "')"
      End If
      End If
     
      'filtre sur mois
     
      If Not IsNull(Me.cmbmois) Then
         If strFiltre = "" Then
            strFiltre = "([Mois]='" & Me.cmbmois & "')"
         Else
            strFiltre = strFiltre & " AND ([Mois]='" & Me.cmbmois & "')"
         End If
         End If
     ' Appliquer le filtre dans le sous-form.
    With Me.sfregroupement_mensuel.Form
       .Filter = strFiltre
       .FilterOn = True
    End With
     
     
    End Sub

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 59
    Points : 50
    Points
    50
    Par défaut Resolut
    Salut,


    J'ai trouvé quelques minutes avant de voir ta réponse, la solution.
    Bien évidemment, me manquait un bout.


    Merci

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

Discussions similaires

  1. [AC-2013] Problème de table de jonction - Formulaire - Sous Formulaire
    Par loic2810 dans le forum Modélisation
    Réponses: 7
    Dernier message: 11/01/2016, 20h01
  2. [AC-2010] Formulaire - Sous formulaire - Sous sous formulaire
    Par meli74 dans le forum IHM
    Réponses: 1
    Dernier message: 21/04/2011, 19h35
  3. Réponses: 4
    Dernier message: 11/04/2007, 18h46
  4. formulaire/sous formulaire/sous formulaire
    Par aimejielle dans le forum Access
    Réponses: 1
    Dernier message: 24/07/2006, 22h48
  5. Réponses: 1
    Dernier message: 10/07/2006, 09h15

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