Bonjour à tous,
Le contexte :
1 - J'utilise une liste déroulante non modifiable nommée CB_RCH_CMX (en pied de formulaire) qui me permet de sélectionner une valeur pour filtrer ensuite le recordset courant sur cette valeur (i.e. récupérer et afficher les lignes correspondantes de la valeur choisie).
2 - Précision : ma liste déroulante comporte également une première ligne vide qui lorsque je la sélectionne permet de supprimer le filtre courant donc d'afficher le recordset en entier (toutes les lignes).
Tout cela marche très bien mais maintenant, je souhaiterai pouvoir saisir qu'une partie de la valeur (du style 'Toto*') dans la combobox pour filtrer les lignes qui commencent par...
J'ai donc mis en place le code suivant :
Mon Problème :
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 Private Sub CB_RCH_CMX_NotInList(NewData As String, Response As Integer) vsNewData = NewData Response = acDataErrContinue Exit Sub End Sub Private Sub CB_RCH_CMX_AfterUpdate() If Nz(vsNewData, "") <> "" Then ' On a saisi une partie de la valeur : 'toto*' ou '*toto*' ou '*toto' Me.Filter = "EQP_C_CMX like " & Chr(34) & vsNewData & Chr(34) Me.FilterOn = True vsNewData = vbNullString Else ' Pour le cas où on a sélectionné directement une valeur dans la liste If Me.CB_RCH_CMX > 0 Then Me.Filter = "EQP_NUM = " & Str(Nz(Me.CB_RCH_CMX, 0)) Me.FilterOn = True Else Me.FilterOn = False End If End If End Sub
Lorsque après avoir saisi 'Toto*' dans la combobox et validé, la liste se déroule automatiquement et semble attendre que je sélectionne une valeur dans la liste déroulante.
Si je sélectionne la ligne vide (première de la liste) le filtre s'applique correctement et les lignes commençant par 'Toto' s'affichent toutes. Exactement ce que je veux obtenir.
Mais voilà, après la validation de la saisie de la chaine 'Toto*' je reste bloqué sur la liste déroulée et là çà va pas ! Dés la validation, le filtre devrait s'exécuter automatiquement ...
Pouvez-vous SVP m'aider à résoudre ce problème ?
D'avance MERCI de vos réponses
Cordialement
oracle7556
Partager