Bonjour,
j'ai crée mes zones de listes et mes requêtes et voici mon code vba ci-dessous:
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
19
20
21
22
23
24
25
26
27
28 Private Sub lstRayon_Click() Dim l_strSql As String Dim l_strIn As String Dim l_intItem As Integer ' parcours de la liste pour récupérer le code sélectionné For l_intItem = 0 To Me.LstRayon.ListCount - 1 If Me.LstRayon.Selected(l_intItem) = True Then ' Création du critère : IN(val1, val2, ...) l_strIn = l_strIn & Me.LstRayon.Column(1, l_intItem) & "," End If Next ' Suppression du dernier caractère de la chaine critère l_strln = "025096," If Len(l_strIn) > 0 Then l_strIn = Left(l_strIn, Len(l_strIn) - 1) ' Génération de la séquence SQL l_strSql = "SELECT [Code1] & [Code2] AS FamSFam, Pgsfamille.DesignSFam, Pgsfamille.SecteurRayon " _ & "FROM Pgsfamille " _ & "WHERE (((Pgsfamille.SecteurRayon)='" & l_strSql & "'));" 'Mise à jour de la liste Me.LstFam.RowSourceType = "Table/Query" Me.LstFam.RowSource = l_strSql Me.LstFam.Requery End If End Sub
Si je remplace la variable l_strSql dans la séquence SQL, par le code rayon 025096 ça marche ma zone de liste est correctement filtré. Lorsque je remplace 025096 par la variable cette fois ci le message d'erreur ci-dessus s'affiche. Du coup j'ai essayé de dire que l_strsql = "025096" pour tester mais ça ne change rien. Il y a peut être une référence à activer ?
J'ai activé :
Visual basic for applications
Microsoft Access 12.0 objectif library
OLE Automation
Microsoft DAO 3.6 Object Library
Microsoft ActiveX Data objects 2.5 Library
Microsoft Outlook 12.0 Object library
Microsoft CDO for windows 2000 library
Microsoft Excel 12.0 object library
Microsoft Scripting runtime
Si quelqu'un à une idée je lui en serait reconnaissant je suis bloqué et c'est la première fois que j'essaie de faire des formulaires et des zones de listes (en plus à choix multiple) donc je n'ai peut être pas les bons réflexes pour corriger le code.
un grand merci d'avance
Partager