| |  |  | Miembros: Mensajes: Temas: Online: Ultimo Miembro: | | | 
02-05-2008, 07:22:12
| | Buena Participación en el Foro | | Registrado: feb 2008 Posts: 60
| | Validaciones de fechas? Buenas brothers, tengo una duda, esque tengo en un textbox le fecha del sistema con la función Date, pero al momento de quererla guardar o procesar..., si el mes es de 30 días y le pongo 31, me truena el programa, como puedo hacer para que el mes de enero solamente acepte 31 días, para febrero 28 días y asi, o que solución puede haber para esto?
Saludos!:; | 
02-05-2008, 09:12:29
| | Gran Participación en el Foro | | Registrado: nov 2006 Ubicación: GALIZA Posts: 193
| | Re: Validaciones de fechas? Hola forer@
Create una funcion en la aplicacion que pasada la fecha la rompa en mes, dia y año y ahí según el mes vas comprobando el número máximo de día que admite ese mes y tirando el correspondiente mensaje de error si procede. Algo asi, muy por encima:
private function compruebafecha (fecha as string) as boolean
compruebafecha=true
'aqui divides la fecha en mes y dia
if mes=2 and dia > 28 then
msgbox error . . .
comruebafecha=false
else
...
end function
luego en el boton de guardar comrpuebas que el valor de compruebafecha sea true sino
sacas el mensaje que no se puede guardar con esos valores | 
02-05-2008, 13:32:58
| | Buena Participación en el Foro | | Registrado: feb 2005 Ubicación: Detras de un monitor... Posts: 78
| | Re: Validaciones de fechas? Lo otro que puedes hacer es poner el dia primero del proximo mes y restarle un dia.
esto no falla.
__________________
---------------------
Ácido, pero vitamínico.
Maipú- Chile
| 
02-05-2008, 18:07:06
| | Buena Participación en el Foro | | Registrado: feb 2008 Posts: 60
| | Re: Validaciones de fechas? A caray, la verdad que gracias por sus respuesta pero se me olvidó decirles que soy muy novato en vb, apenas llevo como 4 meses con el, y no tengo mucho conocimiento en el, si me pudieran mejor decir pasito a pasito como los niños de primaria ., xD!, que soy muy novato, o que funciones tengo que usar.
Saludos!; | 
02-05-2008, 19:52:09
|  | Administrator | | Registrado: dic 2002 Ubicación: BURGOS - ESPAÑA Posts: 5.167
| | Re: Validaciones de fechas? También puedes montar una función para validar las fechas. La pones en un Módulo, tal que así: Código: Function ValeFecha(FecTxt As String) As Date
Dim cDia As String
On Local Error Resume Next
If FecTxt <> "" Then
cDia = Left(FecTxt, 2)
While InStr(FecTxt, "-") > 0
n = InStr(FecTxt, "-")
FecTxt = Left(FecTxt, n - 1) & Mid(FecTxt, n + 1)
Wend
If Mid(FecTxt, 3, 1) <> "/" Then FecTxt = Left(FecTxt, 2) & "/" & Mid(FecTxt, 3)
If Mid(FecTxt, 6, 1) <> "/" Then FecTxt = Left(FecTxt, 5) & "/" & Mid(FecTxt, 6)
FecTxt = Left(FecTxt, 10)
FecTxt = Format(FecTxt, "dd/mm/yyyy")
Err = 0
FecTxt = CDate(FecTxt)
If Left(FecTxt, 2) <> cDia Or Err <> 0 Then
x = MsgBox("¡¡¡ A T E N C I O N !!!" & Chr(10) & _
Chr(10) & _
"Compruebe el formato de esta fecha.", vbCritical)
FecTxt = Null
End If
End If
ValeFecha = FecTxt
End Function Con esto puedes introducir una fecha poniendo simplemente "020508" y la función te devolverá "02/05/2008". Y si pones "31-02-2008" te dirá que "Compruebes el formato..."
Sólo tienes que poner en el evento " _LostFocus" del textbox las líneas Código: textbox1 = ValeFecha(textbox1)
if isnull(textbox1) then textbox1.SetFocus | 
03-05-2008, 01:13:03
|  | Moderador | | Registrado: nov 2007 Ubicación: Argentina Posts: 349
| | Re: Validaciones de fechas? Hola,¿y si usas el control MaskedBox que es para eso?,pero claro,es un control ocx mas al proyecto...
saludos.
__________________ Todos somos ignorantes; lo que pasa es que no todos ignoramos las mismas cosas - Albert Einstein | 
05-05-2008, 21:32:11
| | Un Nuevo Amigo | | Registrado: ago 2006 Posts: 3
| | Re: Validaciones de fechas? Cita:
Empezado por cMr Buenas brothers, tengo una duda, esque tengo en un textbox le fecha del sistema con la función Date, pero al momento de quererla guardar o procesar..., si el mes es de 30 días y le pongo 31, me truena el programa, como puedo hacer para que el mes de enero solamente acepte 31 días, para febrero 28 días y asi, o que solución puede haber para esto?
Saludos!:; |
Saludos, amigos. Para el problema de la fecha yo utilizo el siguiente procedimiento, espero te sirva, pero hay que colocarla en un Maskedbox.
Private Sub MaskEdBox1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
FechaCorrecta = IsDate(MaskEdBox1)
If Not FechaCorrecta Then
MsgBox ("Por favor verifique la Fecha"), , "Fecha incorrecta"
MaskEdBox1.Text = "__/__/____"
MaskEdBox1.SetFocus
Else
DiferenciaFecha = DateDiff("d", MaskEdBox1, Date)
If DiferenciaFecha < 0 Then
MsgBox ("La fecha esta en el futuro"), , "Fecha incorrecta"
Else
MaskEdBox2.Text = Format(Date, "dd/mm/yyyy")
MaskEdBox2.SelStart = 0
MaskEdBox2.SelLength = Len(MaskEdBox2.Text)
MaskEdBox2.SetFocus
End If
End If
End If
End Sub | 
09-05-2008, 05:27:25
| | Buena Participación en el Foro | | Registrado: feb 2008 Posts: 60
| | Re: Validaciones de fechas? Jeje, muchas gracias brothers, y disculpa por no haberles contestado antes.
Gracias por su ayuda y sus respuestas.
Lo pude solucionar con un la simple función de IsDate(Text1), por lo que agarra si es fecha o no, y eso ya te hace todo, dentro de un if, todo se solucionó, pero de todos modos, muchas gracias, no cabe que les debo un gran agradecimiento en especial a J.M. Movilla, seba123neo y a susio24 por estarme apoyando en cada duda que tengo y gracias también a Carlos Molina por su respuesta.
Saludos!; | | Herramientas | | | | Desplegado | Mode Lineal |
Normas de Publicación
| no Puedes crear nuevos temas no Puedes responder a temas no Puedes adjuntar archivos no Puedes editar tus mensajes Código [IMG] está habilitado Código HTML está deshabilitado | | | La franja horaria es GMT. Ahora son las 17:20:19.
Powered by vBulletin® Version 3.6.8 Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design
|  |