Visual Basic - introducir solo numeros

Life is soft - evento anual de software empresarial
   
Vista:

introducir solo numeros

Publicado por bern (2 intervenciones) el 24/01/2009 17:56:54
Hola amigos:

Tengo el siguiento texto para un text box. De esta forma solo permito numeros y la tecla de retroceso:

Private Sub txt_codcliente_KeyPress(keyascii As Integer)
If keyascii <> 8 Then
If keyascii < 48 Or keyascii > 57 Then
keyascii = 0
Beep
End If
End If
End Sub

Lo que quiero es hacer una subrutina para llamarla en cada text box, sin tener que estar copiando el texto, porque se me haria muy extenso el codigo. Algo asi como:

Private Sub txt_codcliente_KeyPress(keyascii As Integer)
SOLONUMEROS
End Sub

¿Como se haria?.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:introducir solo numeros

Publicado por pp (7 intervenciones) el 24/01/2009 19:47:52
public function SoloNumeros()
If keyascii <> 8 Then
If keyascii < 48 Or keyascii > 57 Then
keyascii = 0
Beep
End If
End If
end function

Private Sub txt_codcliente_KeyPress(keyascii As Integer)
x = solonumeros()
end sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:introducir solo numeros

Publicado por P3L30N2009 (701 intervenciones) el 24/01/2009 21:05:14
¿Y eso que pones funciona? me parece que no!

Si quieres una función qiue te controle eso:

Function SoloNumeros(ByVal Tecla As Integer) As Integer
Dim iValor As Integer
iValor = Tecla
If InStr("0123456789" & Chr(8), Chr(iValor)) = 0 Then iValor = 0
SoloNumeros = iValor
End Function

Private Sub txt_codcliente_KeyPress(KeyAscii As Integer)
KeyAscii = SoloNumeros(KeyAscii)
End Sub

Aunque te puedes ahorrar la función, poniendo en cada evento KeyPress una sola línea de código:

Private Sub txt_ElQueSea_KeyPress(KeyAscii As Integer)
If InStr("0123456789" & Chr(8), Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:introducir solo numeros

Publicado por pp (7 intervenciones) el 24/01/2009 22:58:36
public function SoloNumeros(keyascii as integer)
If keyascii <> 8 Then
If keyascii < 48 Or keyascii > 57 Then
keyascii = 0
Beep
End If
End If
end function

Private Sub txt_codcliente_KeyPress(keyascii As Integer)
x = solonumeros(Keyascii as integer)
end sub

ahora si ,k antes se me ha ido la olla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:se te sigue yendo la olla

Publicado por pp (7 intervenciones) el 25/01/2009 14:55:26
Solo intento ayudar ,si pide una funcion para llamar desde cada textbox.

K kree una funcion x ejemplo nosolonumeros

y en cada texbox la llame pasando el keyascii para comprobar que es lo que introduce.

Si tu sabes mejor la respuesta mejor para ti y para el que le ayudaras mejor.
Ya lo digo k yo no controlo en visual basic...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:se te sigue yendo la olla

Publicado por bern (2 intervenciones) el 25/01/2009 19:13:27
Os agradezco las respuestas a los dos.

Como soy novato, pasare de funciones y hare el ejemplo de una sola linea de codigo en cada keypress de cada text box, en vez de usar una funcion.

Muchas gracias y hasta otra.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar