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

  1. #1
    Candidat au Club Avatar de maximeAA
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    septembre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : septembre 2018
    Messages : 19
    Points : 2
    Points
    2

    Par défaut Filtrer une table selon une sélection par Checkbox

    Bonjour,

    Je me suis inscrit aujourd'hui sur ce Site/Forum. Et j'espère y rester
    J'ai un petit problème, que je vais vous exposer ici :
    Je travaille sur Access 2013. J'ai une seule table avec plusieurs colonnes et dont "Products", et dans cette dernière j'ai parfois plusieurs produits par ligne séparés par ";"
    Ex :
    ID Name Products
    1 société1 toto; nasa; kiki
    2 société2 jaja
    3 société3 kali; gogo
    4 société4 kiki, zorro

    J'ai créé un formulaire de recherche "produit" avec 5 checkboxes ( un checkbox = nom produit)
    L'objectif est que l'utilisateur puisse cocher un ou plusieurs produit (checkbox) pour faire une recherche dans la table et pour afficher les lignes avec les produits recherchés.
    J'ai créé un script VBA, mais cela ne marche pas correctement.

    voici le script:


    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
    Private Sub btSearch_Click()
     
        Dim a As String
        a = ""
        If Me.Check1.Value Then
            a = "toto"
        End If
     
        Dim b As String
        b = ""
        If Me.Check2.Value Then
            b = "kiki"
        End If
     
        Dim c As String
        c = ""
        If Me.Check3.Value Then
            c = "jaja"
        End If
     
        Dim d As String
        d = ""
        If Me.Check4.Value Then
            d = "zorro"
        End If
     
     
            strRowSource = "SELECT [ID],[LName],[FName],[Specialty],[Function],[Country],[Products]" & _
                                    "FROM Contacts " & _
                                    "WHERE [Products] LIKE ('*" & b & "*') OR [Products] LIKE ('*" & c & "*') ;"
     
            Me.Liste1.RowSource = strRowSource
     
    End Sub
    lorsque je coche les cases "kiki" et "jaja", et je clique sur chercher ==> j'obtiens 3 lignes :

    ID Name Products
    1 société1 toto; nasa; kiki
    2 société2 jaja
    4 société4 kiki, zorro

    lorsque je coche uniquement "kiki", et je clique sur chercher ==> rien ne se passe, la table reste à son état initiale
    lorsque je coche uniquement "jaja", et je clique sur chercher ==> rien ne se passe, la table reste à son état initiale

    J'ai des doutes que la syntaxe sql "OR" est mal interpreté ou il y a qlq chose d'autre que je ne maitrise pas
    J'aurai besoin de votre aide s'il vous plaît et de vos compétences pousseés dans access VBA et sql.
    Quelqu'un a une idée d'où vient le problème ? et comment faire ?


    Merci d'avance
    Maxime

  2. #2
    Expert confirmé
    Avatar de tee_grandbois
    Homme Profil pro
    retraité mais encore activé
    Inscrit en
    novembre 2004
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité mais encore activé

    Informations forums :
    Inscription : novembre 2004
    Messages : 3 241
    Points : 5 562
    Points
    5 562

    Par défaut

    bonsoir,
    essaie cette proposition:
    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
    Private Sub btSearch_Click()
     
    Dim strWhere As String
     
    If Me.Check1.Value Then strWhere = iif(strWhere ="","","OR ") & "[Products] LIKE '*toto*' "
     
    If Me.Check2.Value Then strWhere = iif(strWhere ="","","OR ") & "[Products] LIKE '*kiki*' "
     
    If Me.Check3.Value Then strWhere = iif(strWhere ="","","OR ") & "[Products] LIKE '*jaja*' "
     
    If Me.Check4.Value Then strWhere = iif(strWhere ="","","OR ") & "[Products] LIKE '*zorro*' "
     
    strRowSource = "SELECT [ID],[LName],[FName],[Specialty],[Function],[Country],[Products] " & _
    "FROM Contacts " & _
    iif(strWhere="",""," WHERE " & StrWhere)  & ";"
     
    Me.Liste1.RowSource = strRowSource
    Me.Liste1.RowSource = Me.Liste1.RowSource
    End Sub

  3. #3
    Candidat au Club Avatar de maximeAA
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    septembre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : septembre 2018
    Messages : 19
    Points : 2
    Points
    2

    Par défaut

    Bonsoir tee_grandbois

    Je vous remercie pour votre réponse.
    En cochant un seul produit, cela fonctionne en affichant la bonne ligne
    mais en cochant 2 produits (2 choix), le tableau se vide complètement

    Donc, si je cherche plus qu'un produit, cela ne fonctionne

  4. #4
    Expert confirmé
    Avatar de tee_grandbois
    Homme Profil pro
    retraité mais encore activé
    Inscrit en
    novembre 2004
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité mais encore activé

    Informations forums :
    Inscription : novembre 2004
    Messages : 3 241
    Points : 5 562
    Points
    5 562

    Par défaut

    Pourrais-tu faire une impression d'écran du formulaire ?
    Merci.

  5. #5
    Expert confirmé
    Avatar de tee_grandbois
    Homme Profil pro
    retraité mais encore activé
    Inscrit en
    novembre 2004
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité mais encore activé

    Informations forums :
    Inscription : novembre 2004
    Messages : 3 241
    Points : 5 562
    Points
    5 562

    Par défaut

    mille excuses, je viens de revoir mon code, il n'était pas correct
    Voici la version corrigée :
    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
    Private Sub btSearch_Click()
    Dim strRowSource As String
    Dim strWhere As String
     
    If Me.Check1.Value Then strWhere = iif(strWhere ="","","OR ") & strWhere & "[Products] LIKE '*toto*' "
     
    If Me.Check2.Value Then strWhere = iif(strWhere ="","","OR ") & strWhere & "[Products] LIKE '*kiki*' "
     
    If Me.Check3.Value Then strWhere = iif(strWhere ="","","OR ") & strWhere & "[Products] LIKE '*jaja*' "
     
    If Me.Check4.Value Then strWhere = iif(strWhere ="","","OR ") & strWhere & "[Products] LIKE '*zorro*' "
     
    strRowSource = "SELECT [ID],[LName],[FName],[Specialty],[Function],[Country],[Products] " & _
    "FROM Contacts " & _
    iif(strWhere="",""," WHERE " & StrWhere)  & ";"
     
    Me.Liste1.RowSource = strRowSource
    Me.Liste1.RowSource = Me.Liste1.RowSource
    End Sub

  6. #6
    Candidat au Club Avatar de maximeAA
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    septembre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : septembre 2018
    Messages : 19
    Points : 2
    Points
    2

    Par défaut

    tee_grandbois

    Merci encore une fois pour votre aide.
    Ci-joint la capture d'écran de mon formulaire.
    Images attachées Images attachées  

  7. #7
    Candidat au Club Avatar de maximeAA
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    septembre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : septembre 2018
    Messages : 19
    Points : 2
    Points
    2

    Par défaut

    tee_grandbois,

    Cela ne marche toujours pas avec la version corrigée

  8. #8
    Expert confirmé
    Avatar de tee_grandbois
    Homme Profil pro
    retraité mais encore activé
    Inscrit en
    novembre 2004
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité mais encore activé

    Informations forums :
    Inscription : novembre 2004
    Messages : 3 241
    Points : 5 562
    Points
    5 562

    Par défaut

    bonjour,
    les cases ne seraient-elles pas dans un groupe d'options ?
    Peux-tu ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Debug.? "1:" & Me.Check1.Value
    Debug.? "2:" & Me.Check2.Value 
    Debug.? "3:" & Me.Check3.Value
    etc.
    avant le premier If Me.Check et poster le résultat qui s'est imprimé dans la fenêtre d'exécution ? (depuis la fenêtre VBA, si elle n'est pas visible, il faut appuyer sur Ctrl+G pour la faire apparaitre)

  9. #9
    Expert confirmé
    Avatar de tee_grandbois
    Homme Profil pro
    retraité mais encore activé
    Inscrit en
    novembre 2004
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité mais encore activé

    Informations forums :
    Inscription : novembre 2004
    Messages : 3 241
    Points : 5 562
    Points
    5 562

    Par défaut

    ou alors, Products est un champ multivalué ...

  10. #10
    Expert éminent sénior

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2012
    Messages
    9 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2012
    Messages : 9 491
    Points : 16 144
    Points
    16 144
    Billets dans le blog
    1

    Par défaut

    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    dim T, i as integer
    T=array("","[Products] LIKE '*toto*' Or ","[Products] LIKE '*kiki*' Or ","[Products] LIKE '*jaja*' Or ","[Products] LIKE '*zorro*' Or ")
    strWhere=""
    For i=1 to 5
      strWhere=strWhere & t(i * abs(me.controls("Check" & i)))
    Next
    If strWhere<>"" then strWhere=left(strWhere,len(strWhere)-3)
     
    strRowSource = "SELECT [ID],[LName],[FName],[Specialty],[Function],[Country],[Products] " & _
    "FROM Contacts " & _
    iif(strWhere="",""," WHERE " & StrWhere)  & ";"
    *

  11. #11
    Candidat au Club Avatar de maximeAA
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    septembre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : septembre 2018
    Messages : 19
    Points : 2
    Points
    2

    Par défaut

    Bonsoir tee_grandbois

    Les cases ne sont pas dans un groupe d'options, elles sont indépendantes. Le groupe options était pour le décor.
    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
     
    Debug.Print "1:" & Me.Check1.Value
    Debug.Print "2:" & Me.Check2.Value
    Debug.Print "3:" & Me.Check3.Value
    Debug.Print "4:" & Me.Check4.Value
    Debug.Print "5:" & Me.Check5.Value
    Debug.Print "6:" & Me.Check6.Value
    Debug.Print "7:" & Me.Check7.Value
    Debug.Print "8:" & Me.Check8.Value
    Debug.Print "9:" & Me.Check9.Value
    Debug.Print "10:" & Me.Check10.Value
    Debug.Print "11:" & Me.Check11.Value
     
     
    Le résultat :
    1:Faux
    2:Faux
    3:-1
    4:Faux
    5:Faux
    6:Faux
    7:Faux
    8:-1
    9:Faux
    10:Faux
    11:Faux
    J'ai coché le 3eme et 8eme produits.
    Voila

    Pour information, j'ai essayé de remplacer "OR" par "AND", et j'obtiens un comportement inverse ç.à.d
    Par exemple :

    lorsque je coche sur un produit comme "AWD", et je clique sur chercher ==> j'obtiens une ligne qui correspond bien à ce produit
    lorsque je coche sur un produit comme "SNAP", et je clique sur chercher ==> j'obtiens une ligne qui correspond bien à ce produit
    lorsque je coche les 2 cases "AWD" et "SNAP", et je clique sur chercher ==> Le tableau se vide en gardant l'entete

  12. #12
    Candidat au Club Avatar de maximeAA
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    septembre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : septembre 2018
    Messages : 19
    Points : 2
    Points
    2

    Par défaut

    Bonsoir dysorthographie,

    Je vous remercie pour votre retour.
    J'ai essayé votre code, mais il ne fonctionne pas. Rien ne se passe dans le tableau, tableau reste comme il est.
    Ou peut être moi qui a mal utilisé votre code

    Voici le script

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    Private Sub btSearch_Click()
     
        Dim T, i As Integer
        Dim a As String
        a = ""
        If Me.Check1.Value Then a = "ABTHERA"
     
        Dim b As String
        b = ""
        If Me.Check2.Value Then b = "ABTHERA ADVANCE"
     
        Dim c As String
        c = ""
        If Me.Check3.Value Then c = "AWD"
     
        Dim d As String
        d = ""
        If Me.Check4.Value Then d = "CELLUTOME"
     
        Dim e As String
        e = ""
        If Me.Check5.Value Then e = "FISTULA"
     
        Dim f As String
        f = ""
        If Me.Check6.Value Then f = "PREVENA"
     
        Dim g As String
        g = ""
        If Me.Check7.Value Then g = "PREVENA SELECT"
     
        Dim h As String
        h = ""
        If Me.Check8.Value Then h = "SNAP"
     
        Dim p As String
        p = ""
        If Me.Check9.Value Then p = "VAC"
     
        Dim j As String
        j = ""
        If Me.Check10.Value Then j = "VERAFLO"
     
        Dim k As String
        k = ""
        If Me.Check11.Value Then k = "VERAFLO CLEANSE CHOISE"
     
     
        If (Me.Check1.Value = False And Me.Check2.Value = False And Me.Check3.Value = False And Me.Check4.Value = False And Me.Check5.Value = False And Me.Check6.Value = False And Me.Check7.Value = False And Me.Check8.Value = False And Me.Check9.Value = False And Me.Check10.Value = False And Me.Check11.Value = False) Then
                Reponse = MsgBox("Please select at least one product to search ", vbOKOnly, "Select product")
     
                If Reponse = vbOK Then
                   strRowSource = "SELECT [ID],[LName],[FName],[Surgical_Specialty],[Function],[Country],[Products]" & _
                       "FROM Contacts " & _
                       "ORDER BY [LName]"
                   Me.Liste1.RowSource = strRowSource
                End If
         Else
     
        T = Array("", "[Products] LIKE '*AWD*' Or ", "[Products] LIKE '*SNAP*' Or ", "[Products] LIKE '*VAC*' Or ", "[Products] LIKE '*CELLUTOME*' Or ")
            StrWhere = ""
     
        For i = 1 To 5
            StrWhere = StrWhere & T(i * Abs(Me.Controls("Check" & i)))
        Next
            If StrWhere <> "" Then StrWhere = Left(StrWhere, Len(StrWhere) - 3)
     
            strRowSource = "SELECT [ID],[LName],[FName],[Specialty],[Function],[Country],[Products] " & _
                           "FROM Contacts " & _
            IIf(StrWhere = "", "", " WHERE " & StrWhere) & ";"
     
         End If
     
    End Sub

  13. #13
    Expert confirmé
    Avatar de tee_grandbois
    Homme Profil pro
    retraité mais encore activé
    Inscrit en
    novembre 2004
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité mais encore activé

    Informations forums :
    Inscription : novembre 2004
    Messages : 3 241
    Points : 5 562
    Points
    5 562

    Par défaut

    1) inutile de remplacer AND par OR car tu ne peux pas être à la fois comme "*kiki*" et comme "*toto*", sauf si les 2 valeurs y sont en même temps: mon code fonctionne parfaitement, je l'ai testé
    2) on ne sait toujours pas si [Products] est un champ multi-valué, peux-tu confirmer si c'est le cas car, dans l'affirmative, le code devrait être:
    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
    Private Sub btSearch_Click()
    Dim strRowSource As String
    Dim strWhere As String
     
    If Me.Check1.Value Then strWhere = iif(strWhere ="","","OR ") & strWhere & "[Products].Value LIKE '*toto*' "
     
    If Me.Check2.Value Then strWhere = iif(strWhere ="","","OR ") & strWhere & "[Products].Value LIKE '*kiki*' "
     
    If Me.Check3.Value Then strWhere = iif(strWhere ="","","OR ") & strWhere & "[Products].Value LIKE '*jaja*' "
     
    If Me.Check4.Value Then strWhere = iif(strWhere ="","","OR ") & strWhere & "[Products].Value LIKE '*zorro*' "
     
    strRowSource = "SELECT [ID],[LName],[FName],[Specialty],[Function],[Country],[Products] " & _
    "FROM Contacts " & _
    iif(strWhere="",""," WHERE " & StrWhere)  & ";"
     
    Me.Liste1.RowSource = strRowSource
    Me.Liste1.RowSource = Me.Liste1.RowSource
    End Sub

  14. #14
    Candidat au Club Avatar de maximeAA
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    septembre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : septembre 2018
    Messages : 19
    Points : 2
    Points
    2

    Par défaut

    tee_grandbois,

    J'ai mis AND juste pour voir le comportement. Mais tu as tout à fait raison, dans mon cas, AND ne répond pas à ce que je veux faire et obtenir.
    Comment je peux voir et confirmer que le champ [Products] est multi-valué ?? Et si non, comment l'activé ?
    Je n'arrive pas à trouver comment y accéder ?dans mode création table et requete il n'y a pas cette option
    Images attachées Images attachées  

  15. #15
    Expert confirmé
    Avatar de tee_grandbois
    Homme Profil pro
    retraité mais encore activé
    Inscrit en
    novembre 2004
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité mais encore activé

    Informations forums :
    Inscription : novembre 2004
    Messages : 3 241
    Points : 5 562
    Points
    5 562

    Par défaut

    c'est dans l'onglet liste de choix, regarde si il y a quelque chose dans Origine Source, Contenu ...

  16. #16
    Expert confirmé
    Avatar de tee_grandbois
    Homme Profil pro
    retraité mais encore activé
    Inscrit en
    novembre 2004
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité mais encore activé

    Informations forums :
    Inscription : novembre 2004
    Messages : 3 241
    Points : 5 562
    Points
    5 562

    Par défaut

    d'après l'impression d'écran du formulaire, c'est probablement un champ multi-valué (valeurs séparées par un point-virgule)

  17. #17
    Candidat au Club Avatar de maximeAA
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    septembre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : septembre 2018
    Messages : 19
    Points : 2
    Points
    2

    Par défaut

    j'ai activé le champ [Products] en multi-valué

    j'ai un message d'erreur au début, si je clique ok je peux continuer à utiliser mon formulaire et je peux effectuer la recherche avec 1 seul produit mais pas 2 ou plusieurs ==> la table se vide pour 2 produits recherchés

    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
     
    Private Sub btSearch_Click()
     
        Dim strRowSource As String
        Dim strWhere As String
     
        If Me.Check1.Value Then strWhere = IIf(strWhere = "", "", "OR ") & strWhere & "[Products].Value LIKE '*ABTHERA*' "
        If Me.Check2.Value Then strWhere = IIf(strWhere = "", "", "OR ") & strWhere & "[Products].Value LIKE '*ABTHERA ADVANCE*' "
        If Me.Check3.Value Then strWhere = IIf(strWhere = "", "", "OR ") & strWhere & "[Products].Value LIKE '*AWD*' "
        If Me.Check4.Value Then strWhere = IIf(strWhere = "", "", "OR ") & strWhere & "[Products].Value LIKE '*CELLUTOME*' "
        If Me.Check5.Value Then strWhere = IIf(strWhere = "", "", "OR ") & strWhere & "[Products].Value LIKE '*FISTULA*' "
        If Me.Check6.Value Then strWhere = IIf(strWhere = "", "", "OR ") & strWhere & "[Products].Value LIKE '*PREVENA*' "
        If Me.Check7.Value Then strWhere = IIf(strWhere = "", "", "OR ") & strWhere & "[Products].Value LIKE '*PREVENA SELECT*' "
        If Me.Check8.Value Then strWhere = IIf(strWhere = "", "", "OR ") & strWhere & "[Products].Value LIKE '*SNAP*' "
        If Me.Check9.Value Then strWhere = IIf(strWhere = "", "", "OR ") & strWhere & "[Products].Value LIKE '*VAC*' "
        If Me.Check10.Value Then strWhere = IIf(strWhere = "", "", "OR ") & strWhere & "[Products].Value LIKE '*VERAFLO*' "
        If Me.Check11.Value Then strWhere = IIf(strWhere = "", "", "OR ") & strWhere & "[Products].Value LIKE '*VERAFLO CLEANSE CHOISE*' "
     
     
        If (Me.Check1.Value = False And Me.Check2.Value = False And Me.Check3.Value = False And Me.Check4.Value = False And Me.Check5.Value = False And Me.Check6.Value = False And Me.Check7.Value = False And Me.Check8.Value = False And Me.Check9.Value = False And Me.Check10.Value = False And Me.Check11.Value = False) Then
                Reponse = MsgBox("Please select at least one product to search ", vbOKOnly, "Select product")
     
                If Reponse = vbOK Then
                   strRowSource = "SELECT [ID],[LName],[FName],[Surgical_Specialty],[Function],[Country],[Products]" & _
                       "FROM Contacts " & _
                       "ORDER BY [LName]"
                   Me.Liste1.RowSource = strRowSource
                End If
         Else
           strRowSource = "SELECT [ID],[LName],[FName],[Surgical_Specialty],[Function],[Country],[Products] " & _
                          "FROM Contacts " & _
           IIf(strWhere = "", "", " WHERE " & strWhere) & ";"
     
            Me.Liste1.RowSource = strRowSource
            Me.Liste1.RowSource = Me.Liste1.RowSource
         End If
     
    End Sub
    Images attachées Images attachées   

  18. #18
    Candidat au Club Avatar de maximeAA
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    septembre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : septembre 2018
    Messages : 19
    Points : 2
    Points
    2

    Par défaut

    voici la colonne products
    Images attachées Images attachées  

  19. #19
    Expert confirmé
    Avatar de tee_grandbois
    Homme Profil pro
    retraité mais encore activé
    Inscrit en
    novembre 2004
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité mais encore activé

    Informations forums :
    Inscription : novembre 2004
    Messages : 3 241
    Points : 5 562
    Points
    5 562

    Par défaut

    j'ai activé le champ [Products] en multi-valué
    je ne t'ai pas proposé de le faire, je ne suis pas favorable à l'utilisation de ce type de champ. Cela pose plus de problèmes que cela en résout.

  20. #20
    Candidat au Club Avatar de maximeAA
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    septembre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : septembre 2018
    Messages : 19
    Points : 2
    Points
    2

    Par défaut

    tee_grandbois,

    désolé, j'ai pensé que tu veux que je passe le champ "Products" en multi-valué.
    J'ai désactivé ce mode, maintenant le champ est à nouveau "zone de texte" et malgré ça le script ne fonctionne pas avec 2 ou plusieurs choix

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 11h17
  2. Réponses: 1
    Dernier message: 19/10/2011, 13h13
  3. Réponses: 7
    Dernier message: 25/03/2011, 11h52
  4. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 15h29
  5. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 22h50

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