Bonjour,
Je souhaite filtrer l'affichage d'un état par une zone de liste à multi choix, mais je ne sais pas comment m'y prendre.
Je m'explique :
Nous voulons executer des contrôles simple mais de façon répété sur une base de donnée SIG.
Sur une table tronçon, j'ai effectué des requêtes sur les champs à controler (Ex : R_diam_T)
Chaque requête est associée à un état, pour une une lecture plus lisible du résultat. (Ex : E_diam_T)
L'ensemble de ces états est consultable par un groupe d'option. (erreur_T)
Voici le code associé :
Sub ImprimeÉtats(ModeImpression As Integer)
On Error GoTo Err_Aperçu_Click
Select Case Me!erreur_T
Case 1
DoCmd.OpenReport "E_diam_T", ModeImpression
Case 2
DoCmd.OpenReport "E_mat_T", ModeImpression
Case 3
DoCmd.OpenReport "E_annee_T", ModeImpression, , "commune = E_annee_T![erreur_T].[numero]"
Case 4
DoCmd.OpenReport "E_date_estimee_T", ModeImpression
Case 5
DoCmd.OpenReport "E_troncon_msrue_incorrect", ModeImpression
Case 6
DoCmd.OpenReport "E_troncon_sans_antenne", ModeImpression
End Select
Quitte_Aperçu_Click:
Exit Sub
Err_Aperçu_Click:
Resume Quitte_Aperçu_Click
End Sub
Sauf que les utilisateurs de ce formulaire travaillent chacun sur un secteur de commune définis et ne veulent voir que les communes les concernant.
J'ai donc créé une zone de liste à choix multiple (Choix_commune), dépendante d'une requête, pour avoir la liste des communes. (R_commune_nom)
Et je voudrais filtrer ces états par ma zone de liste
Comment faire ?
Merci pour votre aide.
Anne Sophie
Ps : J'ai tentté de mettre ce code sous "case 1, mais ça ne fonctionne pas :
Dim Condition As String
Dim Ctr As Integer
Dim AuMoinsUn As Boolean
AuMoinsUn = False
Condition = "Commune In("
For Ctr = 0 To Me![Choix_commune].ListCount - 1
If Me![Choix_commune].Selected(Ctr) Then
AuMoinsUn = True
Condition = Condition & "'" & Me![Choix_commune].Nom(0, Ctr) & "',"
End If
Next Ctr
Condition = Left(Condition, Len(Condition) - 1) & ")"
Avez-vous des pistes ?
Configuration: Windows XP Internet Explorer 6.0