Autorellenar campo fecha

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
1
¿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...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas