cletou
Messages postés4Date d'inscriptionsamedi 11 novembre 2000StatutMembreDernière intervention26 avril 2005
-
8 avril 2005 à 15:47
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 2006
-
9 avril 2005 à 21:32
Salut à tous,
Je souhaiterais savoir comment on récupere le code ascii que l'utilisateur saisi
au clavier.
Par exemple pour la procédure
Private Sub TextBoxCodePostal_KeyPress(KeyAscii As Integer)
Que dois je faire pour récupérer la valeur à donner à KeyAscii ??
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 8 avril 2005 à 16:01
Starec < vbKeyReturn n'est pas un code Ascii !! C'est un code de touche !!!! IL est utilisable conjointement avec le paramètre KeyCode des evt KeyDown et KeyUp !!!
Les code ascii sont simple à obtenir : Asc("A") pour un A majuscule par exemple. Pour le retour chariot, c'est vbCR, etc ...
cletou
Messages postés4Date d'inscriptionsamedi 11 novembre 2000StatutMembreDernière intervention26 avril 2005 8 avril 2005 à 16:13
Merci christophe,
je me suis peut être mal exprimé je cherche simplement
à récupérer le code Ascii de la touche saisie par
l'utilisateur afin de vérifier, dans le cas présent pour un
code postal, s'il s'agit bien d'un chiffre :
If KeyAscii < 48 Or KeyAscii > 57 Then
error ......
End if
Starec
Messages postés152Date d'inscriptionmercredi 30 mars 2005StatutMembreDernière intervention 5 mars 2007 8 avril 2005 à 16:27
Exact, j'ai mal saisi, si tu veux contrôler ce qui est saisi tu peux obliger l'utilisateur à ne saisir que des chiffres (voir l'emple ci dessous qui se trouve dans le forum et les sources avec plein d'autre tape "Validation Saisie", et de plus je crois qu'en mettant la propriété de ta textbox Maxlenght à 5, tu ne peux saisir plus de 5 chiffres comme un code postal
Private Sub Text1_KeyPress(KeyAscii AsInteger)
IfNotChr(KeyAscii) Like "[0123456789]" Then KeyAscii = 0
EndSub
Starec
Vous n’avez pas trouvé la réponse que vous recherchez ?
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 8 avril 2005 à 17:26
Le test direct sur le Keyascii est tout aussi judicieux, même plus ...
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii <48 Or KeyAscii > 57 then
KeyAscii = 0
' Mettre éventuellement un msg d'erreur si tu le veux içi.
Endif
End Sub
Tu peux aussi remplacer ta textbox par une MaskedEditBox et jouer sur sa propriété Mask
EMSIEN
Messages postés194Date d'inscriptionlundi 26 juillet 2004StatutMembreDernière intervention11 juin 2009 8 avril 2005 à 17:56
Pour ma part je te suggère dans le cas ou tu veux tester si c'est des numéros d'utiliser la fonction Isnuméric(expression) qui Retourne une valeur booléenne indiquant si une expression peut être évaluée sous la forme d'un nombre.
mais dans ce cas meme les réels sont considérés Numériques ce qui est normal mais pour le code postale.
mais ça te serviras peut etre un jour.
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 8 avril 2005 à 21:46
Je ne vais sans doute rien ajouter de positif à la discussion mais je me permet quand même de donner mon avis.
J'aime bien la soluce de Starec :
If Not Chr(KeyAscii) Like "[0123456789]" Then KeyAscii = 0
sauf que je l'aurais écrite :
If Not Chr$(KeyAscii) Like "[0123456789]" Then KeyAscii = 0
car on oublie trop souvent l'opérateur Like qui est souvent plus rapide que de jouer avec des mid$, left$ et right$ lors de recherches dans des enregistrements et fichiers.
Mais, en terme de performance, dans ce cas précis, je préfère celle de
crenaud76 :
If KeyAscii <48 Or KeyAscii > 57 then KeyAscii = 0
car cela évite une première conversion en caractère ascii ( chr$(KeyAscii) ) puis une recherche dans une chaîne "[0123456789]".
Je sais bien qu'avec les sytèmes actuels la différence est minime voire proche de nulle (puisque dans ce cas, la différence du temps d'exécution est absorbée par le temps de saisie) mais je pense qu'il est bon de connaître les 2 méthodes et les utiliser à bon escient.
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 9 avril 2005 à 21:32
Canis Lupus < Même analyse que toi du pb, donc même déduction et donc proposition de ce code, plutot que de la solution avec le Like, comme toi.
On est sur la même longueur d'onde toi et moi !! Pour un Félin et un "Canis Lupus", c'est un comble !!!