Bonjour à vous,
J'ai besoin d'aide pour améliorer ce formulaire de recherche.
Deux zones de listes et un sous formulaire.
En faisant un choix dans la première zone de liste (catégorie) la deuxième affiche une sous catégorie et celle-ci affiche les articles correspondant.
(Catégorie un)----(Sous cat)----(article)
Cependant pour plus de souplesse je tente par l'intermédiaire de l'ajout d'une autre zone de liste (en jaune) de faire en sorte que :
Si je note dans cette nouvelle zone directement un article et bien l'ensemble s'alimentent.
Par exemple le mot….REGLE…. et hop...ce serait merveilleux....
A la base mon choix doit il ce porter sur une zone de liste ou une zone de texte ?
Code de la première liste :
Code de la deuxième liste :
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 Private Sub cboCategorie_Click() Dim l_strSql As String, l_strIn As String Dim l_intItem As Integer For l_intItem = 0 To Me.cboCategorie.ListCount - 1 If Me.cboCategorie.Selected(l_intItem) = True Then l_strIn = l_strIn & Me.cboCategorie.Column(0, l_intItem) & "," End If Next If Len(l_strIn) > 0 Then l_strIn = Left(l_strIn, Len(l_strIn) - 1) l_strSql = "SELECT DISTINCT Tble_sous_catégories.Code_sous_catégories, Tble_sous_catégories.Sous_catégories " _ & "FROM Tble_sous_catégories INNER JOIN (Tble_catégories INNER JOIN Tble_articles ON (Tble_catégories.CodeCategorie = Tble_articles.CodeCategorie) " _ & "AND (Tble_catégories.CodeCategorie = Tble_articles.CodeCategorie)) ON (Tble_sous_catégories.Code_sous_catégories = Tble_articles.Code_sous_catégories) " _ & "AND (Tble_sous_catégories.Code_sous_catégories = Tble_articles.Code_sous_catégories) " _ & "WHERE Tble_catégories.CodeCategorie In (" & l_strIn & ")" Me.cbo_Sous_catégories.RowSourceType = "Table/Query" Me.cbo_Sous_catégories.RowSource = l_strSql Me.cbo_Sous_catégories.Requery End If End Sub
Voici le fichier en exemple....ça pourra servir à quelqu'un....
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
29
30
31 Private Sub cbo_Sous_catégories_Click() Dim l_strIn As String Dim l_strSql As String Dim l_intItem As Integer For l_intItem = 0 To Me.cbo_Sous_catégories.ListCount - 1 If Me.cbo_Sous_catégories.Selected(l_intItem) = True Then l_strIn = l_strIn & Me.cbo_Sous_catégories.Column(0, l_intItem) & "," End If Next If Len(l_strIn) = 0 Then l_strSql = "" Else l_strIn = Left(l_strIn, Len(l_strIn) - 1) l_strSql = "SELECT Tble_articles.Désignations, 'S' & [Références] AS Id_Ref, Tble_sous_catégories.Sous_catégories, Tble_catégories.Categorie, Tble_articles.Code_sous_catégories " _ & "FROM Tble_catégories INNER JOIN (Tble_sous_catégories INNER JOIN (Tble_Références INNER JOIN Tble_articles ON (Tble_Références.Num_Réf = Tble_articles.Num_Réf) " _ & "AND (Tble_Références.Num_Réf = Tble_articles.Num_Réf)) ON (Tble_sous_catégories.Code_sous_catégories = Tble_articles.Code_sous_catégories) " _ & "AND (Tble_sous_catégories.Code_sous_catégories = Tble_articles.Code_sous_catégories)) ON (Tble_catégories.CodeCategorie = Tble_articles.CodeCategorie) " _ & "AND (Tble_catégories.CodeCategorie = Tble_articles.CodeCategorie) WHERE Tble_sous_catégories.Code_sous_catégories In (" & l_strIn & ") ORDER BY [Désignations]" End If Me.SF_Désignations.Form.RecordSource = l_strSql Me.SF_Désignations.Requery End Sub
Déjà, est-ce possible de réaliser ce que je veux ?
Le simple fait de taper le début d’un mot et bien l'ensemble ce met en action...
A la rigueur est ce que j'ai fait le bon choix pour afficher mes articles avec deux zones de listes, est ce possible d'ajouter un autre élément en supplément pour plus de souplesse ?
Merci beaucoup.
Partager