Visual Basic - URGENTE EN VALIDACION DE FECHA PLEASE

Life is soft - evento anual de software empresarial
 
Vista:

URGENTE EN VALIDACION DE FECHA PLEASE

Publicado por EDGAR (193 intervenciones) el 04/12/2004 20:00:03
Hola colega, tengo un grave problema ya que estoy haciendo las validaciones de mis fechas pero no se que propiedad o de que forma codificar para que me valide los dias y meses para que por ejemplo si pongo el dia 32 me diga que es incorrecta o si digo que el mes es 13 tambien es incorrecto. Pero necesitaria hacer esa validacion tomando en cuenta un Date que me permita diferencias los meses que tengan 30 0 31 dias o en el caso del mes 02 que dependiendo del año es 28 dias.. Estoy trabajando en un masked box y por diferentes motivos me veo obligado a trabajar con este control y no con el dtpicker. Se que hay la posibilidad de solucionar este problema, lo que te agradezco de antemano... El codigo que tengo a continuacion es lo que llevo en las validaciones que he echo:

Private Sub MKBfecnac_KeyPress(KeyAscii As Integer)
Dim A As Date
Dim B As Date
A = "01/01/2010"
B = "01/01/1900"
If KeyAscii = 13 Then
If MKBfecnac <> "__/__/____" Then
If IsDate(MKBfecnac) = True And MKBfecnac.Text <= A And MKBfecnac.Text >= B Then
fecnac = MKBfecnac
SendKeys "{tab}"
KeyAscii = 0
Else
varmsg1 = MsgBox("La Fecha de Nacimiento es Invalida!!!", vbExclamation, "Atención")
MKBfecnac.Text = "__/__/____"
MKBfecnac.SetFocus
End If
Else
fecnac = Empty
SendKeys "{tab}"
KeyAscii = 0
End If
End If
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:URGENTE EN VALIDACION DE FECHA PLEASE

Publicado por bla (230 intervenciones) el 04/12/2004 21:21:59
isdate("12/31/2004") devuelve true, porque entiende que nos referimos al 31 de diciembre
isdate("11/12/2004") también devuelve true, pero según la configuración local de la máquina puede enteder que nos referimos al 11 de diciembre o al 12 de noviembre.
Para evitar estas y otras ambigüedades los mejor es:
isdate("2004/12/07") así siembre entiende que el formato es aaaa/mm/dd

En tu caso:
s=mkbfecnac.text
isdate( mid(s,7,4) & "/" & mid(s,4,2) & "/" & mid(s,1,2) )
nos dirá siempre si la fecha introducida es válida.
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