Visual Basic - un favor

Life is soft - evento anual de software empresarial
 
Vista:

un favor

Publicado por anais (1 intervención) el 19/03/2007 17:35:04
hola chicos como estan? mi problema es el siguiente necesito saber como hago para que un text no me acepte letras si no numeros. gracias muchachos! seria de gran ayuda.
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:un favor

Publicado por Carlos Alexander (41 intervenciones) el 19/03/2007 18:11:46
'muy facil se hace lo siguiente:

Private Sub Text1_Keypress(KeyAscii As Integer)
If (KeyAscii <> Asc("1") And KeyAscii <> Asc("2") And KeyAscii <> Asc("3") And KeyAscii <> Asc("4") And KeyAscii <> Asc("5") And KeyAscii <> Asc("6") And KeyAscii <> Asc("7") And KeyAscii <> Asc("8") And KeyAscii <> Asc("9") And KeyAscii <> Asc("0")) And KeyAscii <> 8 Then
KeyAscii = 0
End If

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:un favor

Publicado por Benjo (679 intervenciones) el 19/03/2007 20:01:04
Yo usaría una rutina con una única validación para letras y números y una para teclas especiales.

Private Sub Text1_KeyPress(KeyAscii As Integer)
If Not "1234567890" Like "*" & CStr(Chr(KeyAscii)) & "*" Then
If KeyAscii <> vbKeyBack Then KeyAscii = 0
End If
End Sub

Esto te permitiría, no solamente avaluar y convertir una única vez al argumento KeyAscii (máximo dos veces si es que querés editarlo con las teclas normales edición comoel BackSpace), sino que podrías ampliar la variedad de signos a aceptar en caso que quieras incorporar decimales y simbolos de moneda, sin mayor codificación.

Private Sub Text1_KeyPress(KeyAscii As Integer)
If Not "$,1234567890" Like "*" & CStr(Chr(KeyAscii)) & "*" Then
If KeyAscii <> vbKeyBack Then KeyAscii = 0
End If
End Sub

Son solo distintas formas de enfocar el mismo problema.

Suerte
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:un favor

Publicado por Luis Prieto (166 intervenciones) el 19/03/2007 19:51:35
Hola, Anais!!!

Solo tienes que poner esto:

Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 9 To 47
KeyAscii = 0
Case 58 To 255
KeyAscii = 0
End Select
End Sub

Espero te sirva.

Saludos!!

Psta: Cualquier duda escribeme.
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