Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/01/2011, 18h42   #1
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 57
Points : 19
Points : 19
Par défaut Problème avec liste déroulante non modifiable

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 :
Code :
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
Mon Problème :

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
oracle7556 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h33.


 
 
 
 
Partenaires

Hébergement Web