SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: feivelfabiola en Jueves 14 de Enero de 2010, 01:48
-
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. :)
-
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
:)