Estoy realizando una aplicación que maneja campos de fecha. En mi trabajo tengo un software que en los campos fecha se autorellenan (por ejemplo quiero introducir 25-08-2010, introduzco 25-08 y el 2010 se rellena solo o introduzco 25 y completa el mes y el año de la fecha actual). Quería saber como programar en mi aplicación access, para que los campos fecha se comporten igual.
1 respuesta
Respuesta de xavi -ae soft-
1
1
xavi -ae soft-, 20años de experiencia en programacion Access a razon de 10 horas...
¿No será Navision? Porque es una de sus utilidades. Bueno, yo me decantaría por: 1. Que el campo no tenga máscara de entrada 2. En el evento al salir, evaluar lo que diga. En función del valor, construir la cadena de fecha. Esta función hace una parte de eso. Function ConvierteFecha(strDato As String) As Date Select Case Len(strDato) Case 1, 2 ' solo tenemos la fecha (dd) ConvierteFecha = DateSerial(Year(date), Month(date), strDato) Case 4 ' Fecha y mes (ddmm) ConvierteFecha = DateSerial(Year(date), Val(Right(strDato, 2)), Val(Left(strDato, 2))) Case 5 ' lo mismo que cuando mide 3 MsgBox "Formato no valido" Case 6 ' ddmmyy ConvierteFecha = DateSerial(Val(Right(date, 2)), Val(Mid(date, 3, 2)), Val(Left(strDato, 2))) Case 7 ' por si acaso MsgBox "Formato no valido" Case 8 ' ddmmyyyy ConvierteFecha = DateSerial(Val(Right(date, 4)), Val(Mid(date, 3, 2)), Val(Left(strDato, 2))) Case Else ' Cualquier otra longitud ' se podria complicar mucho la formula para verificar si es ddm (121 = 12 enero) ' o dmm (911 = 9 noviembre) o dmmyy o ' De momento se dice que no, que no se puede calcular MsgBox "Formato no valido" End Select End Function Lo que ocurre es que, además, debería controlarse cada uno de los distintos "fragmentos" en que pueda dividirse el dato. Así, por ejemplo, si introduces el dato 1234, la función devuelve el día 12 de octubre del 2012... Pero esas validaciones te las dejo para ti...