Liste déroulante, case à cocher et état

Fermé
sousleau12 Messages postés 19 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 28 octobre 2009 - 28 oct. 2009 à 11:56
Bonjour,

J'ai un formulaire (F_client) composé de 3 liste déroulantes ListeCommune, ListeType et ListeLibelle.
Le contenu provient d'une même requête. L'objectif est d'ouvrir un état en fonction des seléctions dans ces zones de listes.

Pbr rencontrés :

1- mes zone de liste sont en selections multiple mais je ne peux pas afficher le resultat de plusieurs selection dans l'état. Comment faire ?
(ex : je choisis deux communes dans ListeCommune et un type de client, l'état s'ouvre vide)

2- Pour afficher l'état, je suis obligée de faire un choix dans les 3 zones de listes. Comment faire pour les rendre "indépendantes" ?

3- Comment faire pour que les zones de listes se mettent à jour en fonction des valeurs séléctionnées dans les zones de listes précédentes :
Ex : communes sélectionnées(ListeCommune) : Caluire et Charbonnière. La liste (listeType) devrait afficher P1/P2/P3 mais pas le reste.
Je sais faire pour une zone de liste sans selection multiple, mais paspour une selection multiple.

4- Devant chaque zone de liste, j'ai une case à cocher. J'aimerais que si la case est décochée, l'état s'ouvre avec l'ensemble des éléments
par exemple :
je décoche 'CocherCommune', donc je n'aurais pas de choix à faire dans ListeCommune.
Je Coche 'CocherType' et selectionne P1
Je décoche CocherLibelle

J'aimerais avoir dans l'état l'ensemble des clients P1 sur toutes les communes (reviens à dire : si décoché = tous)

J'ai tenté pour ça un code, mais ca bug complétement :

Private Sub Aperçu_Click()
On Error GoTo Err_Aperçu_Click
 
 Dim stDocName1 As String
         stDocName1 = "E_client_prioritaire"
 
 Dim varI1 As Variant
 Dim strFiltre1 As String
    strFiltre1 = ""
         
  Dim varI2 As Variant
  Dim strFiltre2 As String
    strFiltre2 = ""
    
Dim varI3 As Variant
 Dim strFiltre3 As String
    strFiltre3 = ""
 
         For Each varI1 In Me!ListeCommune.ItemsSelected
         If strFiltre1 <> "" Then strFiltre1 = strFiltre1 & "AND"
           strFiltre1 = strFiltre1 & "[Nom]='" & _
           Me!ListeCommune.ItemData(varI1) & "'"
         Next varI1

         For Each varI2 In Me!ListeType.ItemsSelected
         If strFiltre2 <> "" Then strFiltre2 = strFiltre2 & "AND"
           strFiltre2 = strFiltre2 & "[TIPE]='" & _
           Me!ListeType.ItemData(varI2) & "'"

         Next varI2
         
          ' Filter the form using selected items in the list box.
     
         For Each varI3 In Me!ListeLibelle.ItemsSelected
         If strFiltre3 <> "" Then strFiltre3 = strFiltre3 & "AND"
           strFiltre3 = strFiltre3 & "[GAO2_PRIORITAIRE.LIBELLE]='" & _
           Me!ListeLibelle.ItemData(varI3) & "'"
         Next varI3
         
         ' Ici la fusion de strFiltre1 et strQuelType
         
         If strFiltre3 <> "" Then
           strFiltre1 = strFiltre1 & " AND (" & strFiltre2 & ")" & " AND (" & strFiltre3 & ")"
         End If
 
         ' Afficher le filtre, pour debugger...
         MsgBox strFiltre1
 
         ' On ouvre l'état avec le filtre final
         DoCmd.OpenReport stDocName1, acPreview, , strFiltre1
 
 
    DoCmd.Close acForm, "E_client_prioritaire"
 
Exit_Aperçu_Click:
    Exit Sub
 
Err_Aperçu_Click:
    MsgBox Err.Description
    Resume Exit_Aperçu_Click


et j'ai mis une procédure évenementielle _AfterUpdate() pour chaque case à cocher

Merci à celui celle ou ceux qui pourront m'aider

Anne Sophie POIRIER
Répondre Citer