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 :

Probleme Formulaire recherche multi critere [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 241
    Points : 106
    Points
    106
    Par défaut Probleme Formulaire recherche multi critere
    Bonjour,
    Je viens à vous car je rencontre un petit probleme.
    J'ai un formulaire basé sur une requete et j'aimerais effectuer un filtre multi critére. Dans ce formulaire j'ai 14 sites avec leurs chiffre d'affaires. Et j'aimerais créer 14 case à cocher pour pouvoir selectionner les site que je veux analyser. J'ai fait un code mais j'ai un inputbox qui s'affiche avec le nom de mon site me demandant de retaper le nom du site. Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub chksitetaa_Click()
    If Me.chksitetaa Then
        Me.Filter = " site = SITE_PARIS"
        Me.FilterOn = True
    Else
       Me.FilterOn = False
        Me.Filter = ""
    End If
    End Sub
    Donc ici des que je coche le site de Paris j'ai l'inputbox avec "SITE_PARIS" et je dois rentrer le nom SITE_PARIS pour que le filtre s'effectue.
    Je ne vois pas d'ou viens l'erreur.

  2. #2
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 241
    Points : 106
    Points
    106
    Par défaut
    Ha oui je vois mon erreur j'ai oublie de mettre les quotes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Filter = " site = TAA"
    qui devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Filter = " site = 'TAA'"
    Par contre j'ai un autre souci. En faite des que je coche SITE_PARIS et SITE_LILLE j'aimerais que les deux site soit visible or c'est toujours le dernier site que je coche qui est visible.

  3. #3
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 241
    Points : 106
    Points
    106
    Par défaut
    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub chksitesitetml_Click()
    If Me.chksitetaa Then
    If Me.chksitetml Then
        Me.Filter = " site = 'SITE_PARIS'" & "and site = 'SITE_LILLE'"
        Me.FilterOn = True
    Else
       Me.FilterOn = False
        Me.Filter = ""
    End If
    End If
    End Sub

  4. #4
    Membre actif Avatar de Flyoss
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Points : 278
    Points
    278
    Par défaut
    Citation Envoyé par Ardiden31 Voir le message
    Par contre j'ai un autre souci. En faite des que je coche SITE_PARIS et SITE_LILLE j'aimerais que les deux site soit visible or c'est toujours le dernier site que je coche qui est visible.
    Pourrais-tu mettre ton code?
    La machine obéit à vos ordres, pas à vos intentions.

  5. #5
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 241
    Points : 106
    Points
    106
    Par défaut
    Oui je l'ai mi par contre je suis entrain de le reviser pour voir mon erreur, je vais utiliser les conditions if mais j'ai le meme probleme

  6. #6
    Membre actif Avatar de Flyoss
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Points : 278
    Points
    278
    Par défaut
    Oups désolé pour le code, on a du se croisé entre le moment ou j'ai cliqué sur répondre et le moment ou tu l'as mis

    Pourrais tu aussi m'éclairer sur ce que sont chksitetml et chksitetaa?
    La machine obéit à vos ordres, pas à vos intentions.

  7. #7
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 241
    Points : 106
    Points
    106
    Par défaut
    La j'ai toujours le meme probleme, il ne prend en compte que le dernier site coché :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub chksitetmb_Click()
    If Me.chksitetmb Then
        Me.Filter = " site = 'SITE_LILLE'"
        Me.FilterOn = True
    ElseIf Me.chksitetaa Then
        Me.Filter = " site = 'SITE_PARIS'" & "and site =   'SITE_LILLE'"
        Me.FilterOn = True
    Else: Me.FilterOn = False
        Me.Filter = ""
    End If
     
    End Sub

  8. #8
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 241
    Points : 106
    Points
    106
    Par défaut
    Ha oui pardon donc :
    chksitetaa : correspond à la case à cocher du SITE_PARIS
    chksitetmb : correspond à la case à cocher du SITE_LILLE

  9. #9
    Membre actif Avatar de Flyoss
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Points : 278
    Points
    278
    Par défaut
    bon ben je construirais mon filtre un peu comme ça en le mettant dans un string.
    J'ai fait une suite de if/end if car je ne sais pas encore boucler sur les checkbox, mais si quelqu'un sait faire, ce serait je pense plus "élégant"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub chksitetmb_Click()
    Dim filtre as string
    filtre = "site ='siteimpossiblequinexistepas'"
    If Me.chksite1 Then
        filtre = filtre & "or site = 'SITE_LILLE' "
    End if
    If Me.chksite2 Then
        filtre = filtre & "or site = 'SITE_PARIS' "
    End if
    If Me.chksite3 Then
        filtre = filtre & "or site = 'SITE_TOURS' "
    End if
    Dans les filtre j'ai mis des OR, en effet tu veux pas que le site soit égal pour chaque enregistrement à Paris ET Lille en même temps mais plutot a l'un ou l'autre.
    J'initialise donc avec un site qui ne peut pas exister et je rajoute toutes mes possibilités derrière.

    Et enfin a la fin selon le filtre obtenu tu l'active ou non comme ceci :





    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    If filtre = "site ='siteimpossiblequinexistepas'" then 
    	FilterOn = False
        Me.Filter = ""
    else
    	Me.Filter = filtre
        Me.FilterOn = True
    end if

    C'est un peu bricolé mais bon, si ça marche
    La machine obéit à vos ordres, pas à vos intentions.

  10. #10
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 241
    Points : 106
    Points
    106
    Par défaut
    En faite l'utilité du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    filtre = "site ='siteimpossiblequinexistepas'"
    c'est de créer un site fictif ?
    Je vais tester tout de suite ton code

  11. #11
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 241
    Points : 106
    Points
    106
    Par défaut
    Yes perfecto ca marche
    Merci encore pour ton temps.

  12. #12
    Membre actif Avatar de Flyoss
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Points : 278
    Points
    278
    Par défaut
    l'interet c'est d'initialiser le filtre. En effet apres je vais rajouter des morceau de filtre qui commencent tous par "or".
    Or ce filtre ne peut pas commencer directement par "or" donc je crée un bout de filtre qui ne ressortira rien

    Et comme en cas de "non-cochage" tu ne souhaite pas filtrer, si mon filtre ne filtre que ce site fictif, je ne l'applique pas.


    Petit correctif au passage j'ai oublié un espace (2 fois) a la fin de la chaine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "site ='siteimpossiblequinexistepas' "
    La machine obéit à vos ordres, pas à vos intentions.

  13. #13
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 241
    Points : 106
    Points
    106
    Par défaut
    Juste une derniere question je met ce code la pour chaque case à cocher avec le meme nombre de site ?

  14. #14
    Membre actif Avatar de Flyoss
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Points : 278
    Points
    278
    Par défaut
    pour chaque nouvelle case tu as juste a rajouter un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Me.chksite3 Then
        filtre = filtre & "or site = 'SITE_TOURS' "
    End if
    C'est la la limite de mon code, pour 100 cases a cocher tu auras 100 conditions if/then
    Donc si quelqu'un est capable de boucler sur des objets dans un formulaire je suis preneur aussi


    EDIT

    ah et ne refait pas la fonction pour chaque case.
    Met la dans une procédure a part que tu rappellera.
    La machine obéit à vos ordres, pas à vos intentions.

  15. #15
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 241
    Points : 106
    Points
    106
    Par défaut
    Ok merci pour ton aide je vais aussi regarder dans mes bouquins pour voir les boucles dans un chek.
    Merci a toi Flyoss

  16. #16
    Membre actif Avatar de Flyoss
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Points : 278
    Points
    278
    Par défaut
    Si tu veux des pistes ça donne quelque chose comme


    for each caseacocher in
    ......
    next caseacocher


    et ce n'est pas propre au checkbox, ça doit je pense marcher pour plein de choses, pour moi ça ne marche encore pour....rien
    La machine obéit à vos ordres, pas à vos intentions.

  17. #17
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 241
    Points : 106
    Points
    106
    Par défaut
    Oui je vais me créer des formulaires tests et si j'y arrive je le posterai.

  18. #18
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Et si il y a une apostrophe dans le champ?
    Citation Envoyé par Flyoss Voir le message
    Mon exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Modifiable20_Click()
    Dim strwhere As String
    strwhere = "MotCle_EMB = '" & Modifiable20 & "''"
        Me.Filter = strwhere
        Me.FilterOn = True
     
    End Sub
    Plante sur Me.Filter = strwhere.

  19. #19
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour chipester,
    Mon exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Modifiable20_Click()
    Dim strwhere As String
    strwhere = "MotCle_EMB = '" & Modifiable20 & "''"
    Me.Filter = strwhere
    Me.FilterOn = True
     
    End Sub
    Plante sur
    tu a mis deux apostrophes au lieu d'une après Modifiable20. Ce qui doit expliquer l'erreur (que l'on ne connait pas puisque tu n'as pas jugé bon de nous donner le libellé)
    pour ce qui concerne ton sous-titre:
    Et si il y à une apostrophe dans le champ?
    la solution donnée dans ce post, à savoir mettre des apostrophes autour des variables, n'est pas sans risque: c'est pour cette raison qu'il est préférable de doubler les guillemets, l'apostrophe étant plus communément utilisée dans la langue française:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strwhere = "MotCle_EMB = """ & Modifiable20 & """"
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

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

Discussions similaires

  1. [AC-2007] Probleme avec formulaire recherche multi criteres
    Par reservoirfrog dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 15/11/2012, 16h10
  2. [Toutes versions] probleme formulaire recherche multi critère
    Par azur123 dans le forum IHM
    Réponses: 2
    Dernier message: 30/08/2012, 16h43
  3. [formulaire] recherche multi critere multi table
    Par luz_negra dans le forum IHM
    Réponses: 21
    Dernier message: 28/11/2007, 00h22
  4. [Formulaire]Recherche Multi Critere
    Par sumtech dans le forum IHM
    Réponses: 5
    Dernier message: 18/04/2007, 16h40
  5. [formulaire] recherche multi criteres
    Par Treuze dans le forum IHM
    Réponses: 3
    Dernier message: 10/01/2006, 10h36

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