Manejo de Fechas

Hola..
¿Cómo hago para que a medida que vaya escribiendo en un textbox con máscara de fecha me verifique que es valida?
Por ejemplo:
__/__/____ que en el primer campo no me deje escribir un nuero mayor a 30. En el segundo no mayor a 12 y en el último desde 1999 a 2999.
Respuesta
1
Tendrías que hacer una rutina de cálculo de fechas, en la que tomaras:
a) Primero el año, para calcular si es bisiesto o no.
b) Segundo el mes, para saber cuantos son los días máxomos que puede tener.
c) Tercero el día .
Yo en lo particular te recomendaría lo siguiente:
1.- Usar 3 campos de texto en los que solamente se puedan escribir el número exacto de caracteres. (4 para el año, 2 para el mes y 2 para el día). Text1=AÑO, Text2=MES y Text3=DIA.
2.- Al capturar el año, es fácil hacer, con un simple (IF-ELSE-THEN) que el año se encuentre en el rango deseado.
3.- Al capturar el mes, es exactamente el mismo problema que el año con un IF se soluciona.
4.- Al capturar el día, como pueden ser 28, 29, 30 o 31 los días válidos, lo que yo hago es terminar de caturar el día y cuando ya la longitud (LEN) del textbox correspondiente al día tiene 2 caracteres, entonces pongo estás lineas para verificar su validez.
Private Sub text3_Change()
If Len(text3.Text) > 1 Then
On Error GoTo 10
a = DateValue(Text1.Text + "/" + text2.Text + "/" + text3.Text)
'aquí pondrás lo que requieras para continuar
Stop
'con tu programa, y harás un exit sub al terminar
GoTo 11
10 Resume 11
11 text3.Text = "": text3.SetFocus
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas