Access - campos solo numericos

 
Vista:

campos solo numericos

Publicado por Racsus (40 intervenciones) el 22/05/2003 11:49:50
Hola

tengo varios campos en un formulario en los que quiero que el usuario sólo pueda escribir numeros. Para ello utilizo la siguiente funcion en el evento "al pulsar una tecla"

Ej:

Private Sub zonaHasta_KeyPress(KeyAscii As Integer)
numeros (KeyAscii)
End Sub

Private Sub numeros(CODIGO As Integer)
Select Case Chr(CODIGO)
Case "0" To "9"
Case Chr(8)
Case Else
CODIGO = 0
End Select
End Sub

Porque en unos campos no me deja escribir letras y en otros si, si todos llaman a la misma función ? no lo entiendo

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:campos solo numericos

Publicado por flete (18 intervenciones) el 22/05/2003 15:54:10
lo que no entiendo es porque quieres hacerlo con codigo, puedes hacerlo directamente en el modo diseño de la tabla:
Al lado de donde pones el nombre de la columna, tienes la opcion de poner numerico y al cambiarlo, en el fotrmulario solo te deja meter numeros.
No se si te habre ayudado, pero no es necesario hacerlo con codigo.
Si quieres hacerlo con codigo no se como se hace. un saludo
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:campos solo numericos

Publicado por JesusAtp (12 intervenciones) el 23/05/2003 01:07:23
Prueba con esto:
El parámetro KeyAscii del evento KeyPress nos indica el código ASCII de la tecla que se acaba de pulsar.Sólo tendremos que realizar las correspondientes comparaciones y asignar el valor 0 a dicho parámetro cuando la tecla pulsada no sea, en este caso, numérica.
1
2
3
4
5
6
7
8
Sub Text1_Keypress(KeyAscii As Integer)
    If KeyAscii <> Asc("9") Then
    'KeyAscii = 8 es el retroceso o BackSpace
       If KeyAscii <> 8 Then
           KeyAscii = 0
       End If
    End If
End Sub
Otra Forma :

1
2
3
4
5
6
7
Private Sub Text1_KeyPress (KeyAscii as Integer)
If KeyAcii = 44 Or KeyAscii = 46 Then
KeyAscii = 44
ElseIf Not (KeyAscii>47 And KeyAscii<58) And KeyAscii>31 Then
KeyAscii = =
End If
End Sub

Los códigos 44 y 46 corresponden al punto y la coma, en este caso la coma es sustituida por el punto decimal, válido para el sistema decimal en España. Si no queremos que el número tenga decimales nos sobrarán las 2 primeras lineas. También se puede depurar el código para que no se acepte otro punto si éste ya ha sido pulsado.

Se comprueba que la tecla pulsada este entre el cero(48) y el nueve (57) y se permite que se pulsen teclas de control: flechas, borrar, etc…
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