Sélection d'enregistrement via choix sur++ listes

anana49 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je souhaiterais sortir les résultats d'une table à l'aide de choix sur 1 liste déroulante et 2 zones de liste.
Concernant la liste déroulante, aucun problème.
Concernant les zones de liste (Choix multiples), j'ai l'impression que ma requête n'identifie pas mes choix de valeurs donc il en ressort rien.
- ChoixMotif = Liste déroulante
- ChoixSillon = Zone de liste choix multiples
- ChoixCanal = Zone de liste choix multiples

Pourriez-vous m'indiquer le code à ajouter en complément de celui, ci-dessous, si c'est possible ?
Merci pour votre aide.
SELECT [Gestion_2018].CODE, [Gestion_2018].DATE, [Gestion_2018].CANAL, [Gestion_2018].SILLON, [Gestion_2018].MOTIF, [Gestion_2018].MOTIF_LONG, [Gestion_2018].VERBE
FROM [Gestion_2018]
WHERE ((([Gestion_2018].DATE) Between [Saisir la date de début] And [Saisir la date de fin]) AND (([Gestion_2018].SILLON)=[Formulaires]![ACCUEIL]![ChoixSillon]) AND (([Gestion_2018].MOTIF)=[Formulaires]![ACCUEIL]![ChoixMotif]) AND (([Gestion_2018].CANAL)=[Formulaires]![ACCUEIL]![ChoixCanal]));

2 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, veux-tu dire que tu sélectionne plusieurs éléments dans la zone ChoixCanal du formulaire ACCUEIL, et que la requête n'en tient pas compte?
    cela fonctionne-t'il mieux quand tu sélectionne un seul élément?
    0
  2. anana49 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonjour yg_be,

    J'ai une zone de liste déroulante avec 1 choix unique (ChoixMotif) et à partir de cette zone, j'ai deux listes avec une sélection de choix multiples (ChoixSillon et ChoixCanal).
    Après sélection, j'ai un bouton de contrôle qui exécute la requête SQL ci-dessus. Mais il me ressort aucun résultat. J'ai essayé avec les conseils d'un collègue de créer un code VBA mais ce code bloque sur la reconnaissance de la liste :
    strChoixMotif = """" & Me.[MOTIF] & """"


    Mon code ajouté à mon BTN de contrôle (Après sélection) :

    Private Sub BTN_LISTING2018_Click()

    Dim strChoixMotif As String
    Dim strChoixSillon As String
    Dim strChoixCanal As String
    Dim varItm As Variant
    Dim strSql As String

    strChoixMotif = """" & Me.[MOTIF] & """"
    ' Construction de la liste "IN" à partir d'une zone de liste

    With Me.ChoixSillon
    For Each varItm In .ItemsSelected
    strChoixSillon = strChoixSillon & IIf(strChoixSillon = "", """", ",""") & (.ItemData(varItm)) & """"
    Next varItm
    strChoixSillon = " In(" & strChoixSillon & ")"
    End With

    With Me.ChoixCanal
    For Each varItm In .ItemsSelected
    strChoixCanal = strChoixCanal & IIf(strChoixCanal = "", """", ",""") & (.ItemData(varItm)) & """"
    Next varItm
    strChoixCanal = " In(" & strChoixCanal & ")"
    End With

    strSql = "CODE, DATE ,CANAL , SILLON, MOTIF, MOTIF_LONG,VERBE " & _
    "FROM [Gestion_2018] " & _
    "WHERE DATE Between [Saisir la date de début] And [Saisir la date de fin]" & _
    " AND SILLON " & strChoixSillon & _
    " AND MOTIF = " & strChoixMotif & _
    " AND CANAL" & strChoixCanal & ";"

    End Sub
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      cela fonctionne-t'il mieux quand tu sélectionnes un seul élément dans ChoixSillon et ChoixCanal?
      que veux-tu dire par le code "bloque"?
      suggestion:
      strChoixMotif =  " '" & Me.ChoixMotif & "' "
      0
    2. anana49 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
       
      Oui en choix unique avec des listes déroulantes..
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > anana49 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
         
        que veux-tu dire par le code "bloque"?
        suggestion:
        strChoixMotif =  " '" & Me.ChoixMotif & "' "
        0