URGENT!!! Saisie de nombres dans une listbox ??

Messages postés
15
Date d'inscription
lundi 11 février 2002
Statut
Membre
Dernière intervention
22 juin 2002
-
Messages postés
15
Date d'inscription
lundi 11 février 2002
Statut
Membre
Dernière intervention
22 juin 2002
-
Bonjour,

Comment réaliser un controle sur la saisie de l'utilisateur dans un textbox qui ne doit contenir que des nombres (pas de lettres) mais qui ne doit pas tenir compte du zéro 0.
ce textbox sert dans l'enregistremnt de données dans une base access, et lorsque l'utilisateur clique sur le bouton enrrgistrer, le programme enregistre un zéro par défaut pour ces champs s'ils sont vide(sinon le prog plante...).
Pour faire simple :
Si l'utilisateur saisie 0,1,2,3,4,5,6,7,8,9,etc...
pas de pb, mais je ne veut pas qu'il puisse saisir des caractères majuscule ou minuscule
Merci d'avance.

3 réponses

Messages postés
662
Date d'inscription
mercredi 16 janvier 2002
Statut
Modérateur
Dernière intervention
16 octobre 2010

Tu peux par les API dire à ta textbox de n'accepter que les chiffres..
*********** Déclarations
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hWnd As Long, _
ByVal nIndex As Long) As Long

Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Public Const ES_NUMBER = &H2000&
Public Const GWL_STYLE = (-16)

*********** Fonction
SetWindowLong Text1.hWnd, GWL_STYLE, GetWindowLong(Text1.hWnd, GWL_STYLE) Or ES_NUMBER

<center>http://www.lynx-asp.fr.st
WebMaster</center>
Messages postés
15
Date d'inscription
lundi 11 février 2002
Statut
Membre
Dernière intervention
22 juin 2002

Bonjour,

Et bien je vais tester cette solution.
Une chose est sur c'est que quand je vois les lignes de code, je me dit que j'en ai encore à apprendre, ça c'est sur... J'aurais jamais trouve rça tout seul ;-)
Un grand merci.
Messages postés
15
Date d'inscription
lundi 11 février 2002
Statut
Membre
Dernière intervention
22 juin 2002

Un collègue de formation m'a donné une autre solution pour laquelle j'ai opté :
ici superficie_bat représente évidemment le textbox dans lequel l'utilisateur devra saisir la superficie du batiment.... (donc que des chiffres) ;-)

Private Sub superficie_bat_KeyPress(KeyAscii As Integer)
If InStr(1, "0123456789", Chr$(KeyAscii)) = 0 And KeyAscii <> 9 And KeyAscii <> 8 Then ' 9 est le code pour 'Del' et 8 pour 'Backspace'
KeyAscii = 0 'n'affiche pas le caractère
End If
End Sub