sousleau12
Messages postés19Date d'inscriptionlundi 7 juillet 2008StatutMembreDernière intervention28 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