Bonjour,
Je veux sélectionner dans une zone de liste un certain nombre de valeurs (plus de 300 parfois en sélectionnant tout) puis ouvrir un état en fonction de ces valeurs, j'ai donc utilisé ce code:
Le problème est que le filtre utilisé,
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 Dim VarI As Variant Dim StrInAct As String StrInAct = "" If Me.[Liste des connecteurs ICU].Selected(0) <> True Then For Each VarI In Me.[Liste des connecteurs ICU].ItemsSelected StrInAct = StrInAct & "'" & Me.[Liste des connecteurs ICU].Column(0, VarI) & "'," Next VarI End If If StrInAct <> "" Then StrInAct = Left(StrInAct, Len(StrInAct) - 1) DoCmd.OpenReport "Annexes ICU OM", acViewPreview, , "[Connecteur] in (" & StrInAct & ")" Else DoCmd.OpenReport "Annexes ICU OM" End If
"[Connecteur] in (" & StrInAct & ")"
devient trop long si le nombre de valeurs est trop grand. Je suis donc passé par une table temporaire puis par l'utilisation d'une requête "image" de la table pour réalisé le filtre:
Malheuresement le tri ne marche pas et l'état s'ouvre pour tout les enregistrements sans compter la requête filtre. Il me parait un peu simple d'utiliser uniquement le nom de la requête sans identifier les champs à filtrer mais c'est ce que m'indique l'aide d'Access.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 DoCmd.RunSQL "DELETE FROM [TEMP_ICU] WHERE ([Connecteur]<>'');" DoCmd.RunSQL "INSERT INTO TEMP_ICU (Connecteur) SELECT Connecteur FROM [Traçabilité-Composants] WHERE [Connecteur] in (" & StrInAct & ") GROUP BY [Traçabilité-Composants].Connecteur" DoCmd.OpenReport "Annexes ICU OM", acViewPreview, "4-T-Liste des connecteurs choisis ICU OM"
Comment faire? S'agit il d'une erreur de syntaxe?
Merci d'avance.








Répondre avec citation



Partager