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 : 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
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
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
Voici le fichier en exemple....ça pourra servir à quelqu'un....
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.