OVH Cloud OVH Cloud

Pour Raymond la virgule du pave numerique

4 réponses
Avatar
yannick
Bonjour,
Je n'arrive tjrs pas à me dépatouiller ce cette fichue virgule dans des zone
de texte c'est pour cela que je me remets à vos compétences

Je voudrais savoir si on peux modifier la virgule du pave numérique par un
point sans avoir à toucher au paramètres régionaux de windows.

En vba j'arrive à modifier cette touche par n'importe quelle lettre sauf le
point comme par hasard.

J’ai une zone de texte recherche n° de téléphone, l'utilisateur saisit dans
cette zone un N° de tel qui commence par 02.22 et cela m’affiche dans une
liste box tous les clients qui ont le N° de tel qui commence par 02.22. Mon
filtre s'applique sur chaque caractère saisi dans cette zone sur l’événement
changement.
Je ne peux pas utiliser un masque de saisie pour cette zone de texte sinon
ma recherche s’effectue en tps réel sans avoir à appuyer sur un bouton

Dans ma table client le champ tel est de la forme 02.25.25.26.64 en format
texte

J'espère que j'ai été clair dans mes propos

Merci de votre réponse.

4 réponses

Avatar
Eric
Bonjour Yannick,

Essaies ce code.(A améliorer)
Je suis sous Access2k et le point du pavé numérique renvoie une virgule.
Le KeyCode est 110 mais le KeyAscii est 46.

L'évènement KeyDown agit avant KeyPress, donc ca t'affiche la virgule
systématiquement.

Sur l'évènement Keypress(Touche activée), je teste le code Ascii. Si
c'est le 46, je lui affecte le caractere associé à Ascii 46.
Par ce biais j'ai bien affiché un point et donc le filtre sql marche

En supposant que ta zone de texte s'appelle Texte0 et la liste Liste3.
Texte0 est renseigné par concaténation avec les caractères saisis et
traités si nécessaire.

Private Sub Texte0_KeyPress(KeyAscii As Integer)
Dim car As String
If KeyAscii = 8 Then ' Test du BackSpace
If IsNull(Texte0) Then Exit Sub
Texte0 = Left(Texte0, Len(Texte0) - 1)
ElseIf KeyAscii = 46 Then
car = Chr(46)
Else
car = Chr(KeyAscii)
End If
KeyAscii = 0
Texte0 = Texte0 & car
Texte0.SelStart = Len(Texte0)
Dim strSQL As String
'Redéfinition du sql
strSQL = "Select ... ,telephone from TaTable where telephone like '"
strSQL = strSQL & Texte0 & "*'"
Me.Liste3.RowSource = strSQL
Me.Liste3.Requery
End Sub

J'espère que tu auras les mêmes résultats sur Access2003
A+
Eric


"=?Utf-8?B?eWFubmljaw==?=" écrivait
news::

Bonjour,
Je n'arrive tjrs pas à me dépatouiller ce cette fichue virgule dans
des zone de texte c'est pour cela que je me remets à vos compétences

Je voudrais savoir si on peux modifier la virgule du pave numérique
par un point sans avoir à toucher au paramètres régionaux de
windows.

En vba j'arrive à modifier cette touche par n'importe quelle lettre
sauf le point comme par hasard.

J’ai une zone de texte recherche n° de téléphone, l'utilisateur
saisit dans cette zone un N° de tel qui commence par 02.22 et cela
m’affiche dans une liste box tous les clients qui ont le N° de tel
qui commence par 02.22. Mon filtre s'applique sur chaque caractère
saisi dans cette zone sur l’événement changement.
Je ne peux pas utiliser un masque de saisie pour cette zone de texte
sinon
ma recherche s’effectue en tps réel sans avoir à appuyer sur un
bouton

Dans ma table client le champ tel est de la forme 02.25.25.26.64 en
format texte

J'espère que j'ai été clair dans mes propos

Merci de votre réponse.



Avatar
Eric
Ooops,

Corriges le test
If IsNull(Texte0) Then Exit Sub
par
If IsNull(Texte0) Or Len(Texte0) = 0 Then Exit Sub


Eric
Avatar
yannick
Un grand merci , j’ai essayé ta solution et elle fonctionne très bien.
Je vois que je suis tombé sur un professionnel ?
A bientôt



Ooops,

Corriges le test
If IsNull(Texte0) Then Exit Sub
par
If IsNull(Texte0) Or Len(Texte0) = 0 Then Exit Sub


Eric



Avatar
Eric
Bonjour Yannick,

Un grand merci , j’ai essayé ta solution et elle fonctionne très
bien.


C'était avec plaisir ;-)

Je vois que je suis tombé sur un professionnel ?



Pro ? Non, non, juste bidouilleur.

A+
Eric