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

IHM Discussion :

[Formulaire]Filtrer selon une sélection par checkbox


Sujet :

IHM

  1. #1
    Membre averti
    Inscrit en
    Août 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 25
    Par défaut [Formulaire]Filtrer selon une sélection par checkbox
    Bonjour,

    J'aimerai filtrer des informations sur mon formulaire de recherche selon la validation par checkbox ?

    Auriez-vous un exemple à me proposer afin que je puisse l'intégrer dans mon fichier, car là je ne sais pas par quoi commencer ? (enfin j'ai testé différentes solutions mais en vain)

    Merci d'avance


  2. #2
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Février 2006
    Messages : 230
    Par défaut
    Le tuto de recherche multi-critères ne ferait-il pas l'affaire ?

  3. #3
    Membre averti
    Inscrit en
    Août 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 25
    Par défaut
    Hello,

    Je me suis basé sur ce tuto pour commencer mon formulaire de recherche mais ça ne traite pas avec les checkbox ?

    Regarde le tuto de cafeine sur la recherche ou le mien, il indique à partir de la 3ème partie (et oui 3 parties !) comment créer faire des recherches multi-table. Par contre il ne travaille pas avec des listes d'exemples ni des cases à cocher.
    Il devrait bien avoir un moyen ?

  4. #4
    Membre éclairé Avatar de lucienkany
    Profil pro
    Développeur
    Inscrit en
    Janvier 2004
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2004
    Messages : 257
    Par défaut
    Bonjour,

    Voici un code que j'utilise. Je l'ai trouvé dans un livre ACCESS 2003 de INISAN

    J'espère que les commentaires seront clairs, snon je peux t'envoyer le ficher si je parviens à le compresser assez.

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    Private Sub btnChercher_Click()
    Dim strFiltre As String
     
    ' Filtre sur Avoir / Facture
    strFiltre = ""
     
     
    ' Filtre sur Numéro Client
    If Not IsNull(Me.cmbNumeroClient) Then
        If strFiltre <> "" Then strFiltre = strFiltre & " AND "
        strFiltre = strFiltre & "([Numéro Client]=" & Me.cmbNumeroClient & ")"
    End If
     
    ' Filtre sur Nom Client
    If Not IsNull(Me.txtNomClient) Then
        If strFiltre <> "" Then strFiltre = strFiltre & " AND "
        strFiltre = strFiltre & "([Nom Client] LIKE '*" & Me.txtNomClient & "*')"
    End If
     
    ' Filtre sur Date Facture
    If Not IsNull(Me.txtDateDebut) Then
        If strFiltre <> "" Then strFiltre = strFiltre & " AND "
        strFiltre = strFiltre & "([Date Facture]>=" & DateUS(Me.txtDateDebut) & ")"
    End If
    If Not IsNull(Me.txtDateFin) Then
        If strFiltre <> "" Then strFiltre = strFiltre & " AND "
        strFiltre = strFiltre & "([Date Facture]<=" & DateUS(Me.txtDateFin) & ")"
    End If
     
    ' Filtrer sur l'état d'impression
    If Me.opgImpression = 1 Then
        If strFiltre <> "" Then strFiltre = strFiltre & " AND "
        strFiltre = strFiltre & "([Imprimée]=yes)"
    End If
    If Me.opgImpression = 2 Then
        If strFiltre <> "" Then strFiltre = strFiltre & " AND "
        strFiltre = strFiltre & "([Imprimée]=no)"
    End If
     
    ' Filtre sur Total Facture
    If Not IsNull(Me.txtMontantMin) Then
        If strFiltre <> "" Then strFiltre = strFiltre & " AND "
        strFiltre = strFiltre & "([Total Facture]>=" & Me.txtMontantMin & ")"
    End If
    If Not IsNull(Me.txtMontantMax) Then
        If strFiltre <> "" Then strFiltre = strFiltre & " AND "
        strFiltre = strFiltre & "([Total Facture]<=" & Me.txtMontantMax & ")"
    End If
     
    ' Afficher le filtre dans la zone d'étiquette lblFiltre
    Me.lblFiltre.Caption = strFiltre
     
    ' Appliquer le filtre dans le sous-form.
    With Me.sfmRecherche.Form
        .Filter = strFiltre
        .FilterOn = True
    End With
    End Sub

  5. #5
    Membre averti
    Inscrit en
    Août 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 25
    Par défaut
    Merci, je vais déjà voir ce que je peux faire avec ça et pour le fichier, oui ce serait cool


  6. #6
    Membre Expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Par défaut
    Bonjour,
    ....filtrer des informations .......selon la validation par checkbox
    Tu peux également utiliser un Select Case.....
    Exemple: Ton groupe d'option (grpChoix) comportant 3 cases à cocher (ayant pour valeur 1 - 2 - 3 )
    Sur l'événement "Après MAJ' du groupe d'options, en reprenant l'exemple de lucienkany
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim strFiltre As String
    strFiltre = ""
     
    Select Case grpChoix.Value
        Case 1
            strFiltre = strFiltre & "([Numéro Client]=" & Me.cmbNumeroClient & ")"
        Case 2
            strFiltre = strFiltre & "([Nom Client] LIKE '*" & Me.txtNomClient & "*')"
        Case 3
            strFiltre = strFiltre & "([Date Facture]>=" & DateUS(Me.txtDateDebut) & ")"
     
    End Select
    End Sub
    Bien sur tu adapte tout cela en fonction du filtre que tu veux appliquer.
    Bonne continuation...

  7. #7
    Membre averti
    Inscrit en
    Août 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 25
    Par défaut
    Hum j'ai de la peine

    comportant 3 cases à cocher
    Là le nom que je mets dans les propiétés à de l'importance par rapport au code car ça me refuse de mettre trois fois le nom grpChoix ? Mais je fais faux là

    "([Numéro Client]="
    Correspond à quoi ?

    Désolé pour ces lacunes mais je débute et je cherche à comprendre.

    Si je peux voir un exemple ce serait plus facile pour moi

    Merci pour votre aide

  8. #8
    Membre Expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Par défaut
    ...de mettre trois fois le nom grpChoix ?...
    Ici grpChoix est le nom que tu donne à un contrôle "Groupe d'option".
    Dans la barre d'outils tu choisi "Groupe d'options" et tu le dépose sur ton formulaire.
    Si l'assistant est actif (baguette magique activée dans barre d'outils), automatiquement une fenêtre d'aide va apparaitre et te guider pour le reste du processus.
    Dans ton cas tu crée autant de case d'option que tu a besoin. Chaque case d'option va se voir attribuer une valeur (1 - 2 - 3).
    Ensuite, dans le code événementiel du groupe d'option "Après MAJ" tu tape le code donné en exemple:
    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
    Private Sub grpChoix_AfterUpdate()
    'Ici en fonction de la valeur de la case d'option cochée 
    Select Case grpChoix.Value
     
    'Si valeur est égale à 1
        Case 1
            .......>>Code
    'Si valeur est égale à 2
        Case 2
            .......>>Code
    'Si valeur égale à 3    
        Case 3
            .......>>Code
     
    End Select
    End Sub
    Est-ce plus clair.....

  9. #9
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Par défaut
    comme te l'a expliquer FreeAccess:
    grpChoix est le nom du controle Groupe d'option

    lorsque tu clic dans une option, Access met automatiquement l'indice de l'option choisi dans grpChoix. (pour peu d'avoir fait ca dans les règles d'où l'assitant)

    et si tu veux réagir en fonction du changement de valeur tu mets le code sur "Après MAJ" du control grpChoix

    le select case t'évite:
    IF grpChoix=1 then ...
    IF grpChoix=2 then ...
    mais j'espère que tu n'as pas des lacunes de ce côté là

  10. #10
    Membre averti
    Inscrit en
    Août 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 25
    Par défaut
    Lol, oui j'en ai mais j'ai pu trouver une solution qui marche à 95 %

    Comment faire pour inverser la sélection dans les cases à cocher ?

    Pour activer un filtre, je dois décocher ma case et j'aimerai bien que ça se fasse par le contraire ?

    Si je prend mon formulaire qui est basé sur le tuto à cafeine, quand tu veux voir toutes les données, il faut que tout soit coché. J'ai rajouté d'autres infos qui sont filtrées mais j'aimerai bien que lors de ma sélection je coche et non décoche pour trouver mon résultat

    J'espère que mon explication est compréhensible

    Merci encore pour votre aide

  11. #11
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Par défaut
    à la vue du tuto,
    oui je comprends mieux effectivement t'as pas besoin d'un groupe d'option

    pour inverser dans la condition "IF Not ..." tu surprime simplement Not devant.
    tu utilise Not pour inverser la condition.

    j'ai vu dans un de tes posts que t'es pas familiarisé avec l'anglais mais je pense que tu comprend ce que ca veut dire "Not"...
    "to be or not to be" W.S.

  12. #12
    Membre averti
    Inscrit en
    Août 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 25
    Par défaut
    Je te suis vodiem

    C'est ok, j'ai pu trouver la solution à mon problème

    Un grand merci à tous et à +

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

Discussions similaires

  1. Picking: une sélection par défaut non voulue
    Par GLDavid dans le forum OpenGL
    Réponses: 3
    Dernier message: 10/06/2008, 09h15
  2. Réponses: 1
    Dernier message: 15/06/2007, 22h28
  3. Réponses: 4
    Dernier message: 23/04/2007, 11h02
  4. Réponses: 5
    Dernier message: 15/08/2006, 16h51
  5. Filtrer selon la sélection d'un menu déroulant
    Par Frollo dans le forum Access
    Réponses: 11
    Dernier message: 26/07/2006, 21h13

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