Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Validar fecha en MaskEdBox en VB6?

Estas en el tema de Validar fecha en MaskEdBox en VB6? en el foro de Visual Basic clásico en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 13/01/2010, 18:45
 
Fecha de Ingreso: julio-2009
Mensajes: 26
Antigüedad: 14 años, 9 meses
Puntos: 0
Sonrisa Validar fecha en MaskEdBox en VB6?

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.
  #2 (permalink)  
Antiguo 13/01/2010, 19:23
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: Validar fecha en MaskEdBox en VB6?

Hola, lo que esta mal es que estas haciendo:

Código vb:
Ver original
  1. If (nummess > mesNow) & (numyearr > yearNow) Then

y el caracter "&" se usa para concatenar cadenas normalmente, si queres ver que las 2 condiciones se cumplan debes poner And

Código vb:
Ver original
  1. If (nummess > mesNow) And (numyearr > yearNow) Then

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #3 (permalink)  
Antiguo 14/01/2010, 18:11
 
Fecha de Ingreso: julio-2009
Mensajes: 26
Antigüedad: 14 años, 9 meses
Puntos: 0
De acuerdo Respuesta: Validar fecha en MaskEdBox en VB6?

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


Etiquetas: vb, fechas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:03.