Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

filterOn=true

2 réponses
Avatar
mkouri
bonjour à tous,
j'ai une liste à filter en fonction de la valeur d'un champs indépendant, actuellement j'ai un bouton ok, je clique et la liste est filtrée sans problème. J'ai vu sur un autre logiciel que dans le champ de recherche, dès qu'on commence à taper la lettre "a" par exemple la liste affiche les clients qu'ont le nom commence par a, et si on ajout le lettre "b" la liste affiche les clients qu'ont le nom commence par "ab" etc, tous ça sans cliquer sur le bouton ok. Est-il possible de faire ça avec Access??
merci pour votre aide

2 réponses

Avatar
Eric
Bonjour

Oui, c'est possible.

En supposant que tu as en entête ou au pied du formulaire un champs nommé
txtSaisi.
Sur l'évènement Touche Appuyée de ce champs txtSaisi:

Private Sub txtsaisi_KeyDown(KeyCode As Integer, Shift As Integer)
Static Chaine As String
Chaine = Chaine + Chr(KeyCode)
' on regarde si l'utilisateur a appuyé sur BackSpace
' et on teste le nb de caractères de chaine pour effacer
' le dernier caractère
If KeyCode = 8 And Len(Chaine) >= 2 Then
Chaine = Left(Chaine, Len(Chaine) - 2)
ElseIf KeyCode = 8 Then
Chaine = Left(Chaine, Len(Chaine) - 1)
End If
' Si la chaine est vide ou si on a effacé avec Del
' on supprime le filtre et on réinitialise les variables
If Len(Chaine) = 0 Or KeyCode = 0 Then
Me.FilterOn = False
txtsaisi = ""
Chaine = ""
Exit Sub
End If
KeyCode = 0 ' on affiche pas le caractère tapé
' On filtre
Me.Filter = "[NomDuChampServantDeCritèreDeFiltre] like '" & Chaine &
"*'"
Me.FilterOn = True
' on affiche les caractères saisis
txtsaisi.Value = LCase(Chaine)
' on se positionne à la fin du champ txtsaisi
If Len(txtsaisi) > 0 Then
txtsaisi.SelStart = Len(txtsaisi)
End If
End Sub



Pour supprimer le filtrage, 2 possibilités :
Effacer le contenu de txtSaisi avec Del ou mettre un bouton annulant le
filtre.

Espérant que ca réponde à ta demande...

A+
Eric

=?Utf-8?B?bWtvdXJp?= écrivait
news::

bonjour à tous,
j'ai une liste à filter en fonction de la valeur d'un champs
indépendant, actuellement j'ai un bouton ok, je clique et la liste
est filtrée sans problème. J'ai vu sur un autre logiciel que dans le
champ de recherche, dès qu'on commence à taper la lettre "a" par
exemple la liste affiche les clients qu'ont le nom commence par a, et
si on ajout le lettre "b" la liste affiche les clients qu'ont le nom
commence par "ab" etc, tous ça sans cliquer sur le bouton ok. Est-il
possible de faire ça avec Access?? merci pour votre aide



Avatar
mkouri
ça marche super bien, un grand merci.
Amitié :)


Bonjour

Oui, c'est possible.

En supposant que tu as en entête ou au pied du formulaire un champs nommé
txtSaisi.
Sur l'évènement Touche Appuyée de ce champs txtSaisi:

Private Sub txtsaisi_KeyDown(KeyCode As Integer, Shift As Integer)
Static Chaine As String
Chaine = Chaine + Chr(KeyCode)
' on regarde si l'utilisateur a appuyé sur BackSpace
' et on teste le nb de caractères de chaine pour effacer
' le dernier caractère
If KeyCode = 8 And Len(Chaine) >= 2 Then
Chaine = Left(Chaine, Len(Chaine) - 2)
ElseIf KeyCode = 8 Then
Chaine = Left(Chaine, Len(Chaine) - 1)
End If
' Si la chaine est vide ou si on a effacé avec Del
' on supprime le filtre et on réinitialise les variables
If Len(Chaine) = 0 Or KeyCode = 0 Then
Me.FilterOn = False
txtsaisi = ""
Chaine = ""
Exit Sub
End If
KeyCode = 0 ' on affiche pas le caractère tapé
' On filtre
Me.Filter = "[NomDuChampServantDeCritèreDeFiltre] like '" & Chaine &
"*'"
Me.FilterOn = True
' on affiche les caractères saisis
txtsaisi.Value = LCase(Chaine)
' on se positionne à la fin du champ txtsaisi
If Len(txtsaisi) > 0 Then
txtsaisi.SelStart = Len(txtsaisi)
End If
End Sub



Pour supprimer le filtrage, 2 possibilités :
Effacer le contenu de txtSaisi avec Del ou mettre un bouton annulant le
filtre.

Espérant que ca réponde à ta demande...

A+
Eric

=?Utf-8?B?bWtvdXJp?= écrivait
news::

bonjour à tous,
j'ai une liste à filter en fonction de la valeur d'un champs
indépendant, actuellement j'ai un bouton ok, je clique et la liste
est filtrée sans problème. J'ai vu sur un autre logiciel que dans le
champ de recherche, dès qu'on commence à taper la lettre "a" par
exemple la liste affiche les clients qu'ont le nom commence par a, et
si on ajout le lettre "b" la liste affiche les clients qu'ont le nom
commence par "ab" etc, tous ça sans cliquer sur le bouton ok. Est-il
possible de faire ça avec Access?? merci pour votre aide