• Domingo 22 de Diciembre de 2024, 23:40

Autor Tema:  Validar fecha en MaskEdBox en VB6?  (Leído 1435 veces)

feivelfabiola

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Validar fecha en MaskEdBox en VB6?
« en: Jueves 14 de Enero de 2010, 01:48 »
0
Hola:

Tengo lo siguiente en mi codigo:

Private Sub MaskEdBox1_GotFocus()

Cadena = Format(Now, "m yyyy")   'Devuelve fecha de Hoy que hay en el PC
mesNow = Month(Now) ' integer mesNow = 1
yearNow = Year(Now)    'integer yearNow = 2010
MsgBox "mes = " & mesNow & " año = " & yearNow   '1   2010 ---> fecha PC

MaskEdBox1.Format = ""
MaskEdBox1.Mask = ""
MaskEdBox1.SelStart = 0
MaskEdBox1.SelLength = 8   'Len(MaskEdBox1.Text)
With MaskEdBox1
.Format = "mmm-yyyy"  
.Mask = "##/####"
End With
End Sub

Private Sub MaskEdBox1_LostFocus()
  If Not (IsDate(MaskEdBox1.Text)) Then
 MaskEdBox1.SetFocus
 End If

'Guardar el valor de MaskEdBox1 sin los separadores en valor numerico en una variable String
MaskEdBox1.ClipMode = mskExcludeLiterals
MaskEdBox1.SelStart = 0: MaskEdBox1.SelLength = 8


lafecha = MaskEdBox1.Text
mess = Left(lafecha, 2)
yearr = Right(lafecha, 4)
MsgBox "mes = " & mess & " año = " & yearr   'mes = 9 año = 2008 -> tecleados
End Sub
''''''''''''''''''''''''''''''''''''''''''''''
Lo que quiero hacer es comparar estos valores enteros mesNow y mess, y yearNow contra yearr para que si alguien teclea por ejemplo 12/2345
la fecha no la tome en cuenta, quiero corregir ese error porque el mes Dic del año 2345 todavia no ocurre.

Habia hecho lo siguiente:

If (nummess > mesNow) & (numyearr > yearNow) Then
   MaskEdBox1.SetFocus
End If

pero no funciona, alguien que me oriente por favor.

Fabiola. :)

feivelfabiola

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Ya di con la respuesta aqui se las dejo:
« Respuesta #1 en: Viernes 15 de Enero de 2010, 01:16 »
0
Asi quedo la fecha doy un mes y un año tecleando: 02/2009 y se cambia por Feb-2009 y si pongo una fecha erronea me pone el mensaje de error y se devuelve a capturar la fecha otra vez:

Private Sub MaskEdBox1_GotFocus()

'MaskEdBox1.BackColor = vbRed, vbGreen, vbBlue, vbYellow
MaskEdBox1.Format = ""
MaskEdBox1.Mask = ""
MaskEdBox1.SelStart = 0
MaskEdBox1.SelLength = Len(MaskEdBox1.Text)

'MaskEdBox1.SelLength = 8 'Len(MaskEdBox1.Text)
With MaskEdBox1
.Format = "mmm-yyyy"
.Mask = "##/####"
End With
'''Date
Cadena = Format(Now, "m yyyy") ' Devuelve el día del sistema en este formato: "02/08/2004"
mesNow = Month(Now) ' intMonth = 1
yearNow = Year(Now)

'''Date


End Sub

Private Sub MaskEdBox1_LostFocus()
lafecha = MaskEdBox1.Text
mess = Left(lafecha, 2)
yearr = Right(lafecha, 4)
nummess = Val(mess)
numyearr = Val(yearr)


If (yearNow < numyearr) Or (mesNow < mess And yearNow <= yearr) Then
MsgBox "Fecha errónea", vbCritical, "Validación de Fecha"
MaskEdBox1.SetFocus
End If

End Sub

 :)