Calcular fecha final de mes

Me dirijo hacia ti porque desde hace unos días que estoy intentando sacar la fecha de final de mes a partir de una fecha introducida por el usuario pero no logro conseguirlo.
La idea o lo que me hace falta es esto, a partir de una fecha cualquiera tengo que calcular el ultimo día del mes y después calcular a partir de ella el ultimo día del mes de los 12 o 13 meses posteriores. He probado con la función "FIN.MES" pero no me reconoce la función por una dll. He copiado la dll desde el CD de Office al disco pero sigue sin reconocerme la función.

1 Respuesta

Respuesta
1
Para calcular el final de mes de un mes concreto debes crearte una función, ya que Access no tiene una función especifica para ello.
A continuación te ofrezco la función que yo utilizo para estos casos, espero que te sea de utilidad.
'*******************************************************************
' Función: Final_Mes
'
' Concepto: Calcula el último día del mes para una fecha.
'
' (c) Angel Pérez Díaz. 1993 - 2002. Todos los Derechos Reservados.
'
'*******************************************************************
Public Function Final_Mes(DFec)
On Error GoTo Error_Final_Mes
Dim DDia, DMes, DFec2
If IsNull(DFec) Then Exit Function
DFec2 = DateAdd("m", 1, DFec)
DFec2 = CVDate("01/" & Month(DFec2) & "/" & Year(DFec2))
DFec2 = DateAdd("d", -1, DFec2)
Final_Mes = DFec2
Exit Function
Error_Final_Mes:
MsgBox Error$, 48, Titulo
Exit Function
End Function
Buenos días Sofocles y gracias por tu contestación, te explico lo que me pasa. Ayer introduje el código que me mandaste por lo de las fechas y al probarlo la primera vez me funciono bien, pero luego, al cerrar la aplicación y volver a entrar me da un error "La función Final_Mes no esta definida en la expresión" y no se como tirar adelante. Te agradecería mucho si pudieras guiarme de como debo hacerlo para poder calcular-lo bien y también si sabes como debo hacerlo para calcular a partir del primer final de mes las 13 siguientes fechas de final de mes.
Muchísimas gracias de nuevo y hasta pronto.
La función final de mes que te he proporcionado debes copiarla en un módulo de tu aplicación y después compilar el módulo y guardarle para que no se pierda el código.
Una vez guardada, simplemente tienes que llamarla desde cualquier parte del módulo (Desde un formulario, informe, etc).
Para calcular el final de mes de la fecha que tu mandas, supongo desde un formulario, y guardar este dato en un campo, debes teclear el siguiente código desde el campo donde pones la fecha a partir de la cual calcular:
Sub FechaApartir_Afterupdate()
[CampoFinalMes]=Final_Mes([FechaApartir])
'**** De esta forma en el campo [CampoFinalMes] del formulario, aparecerá la fecha que corresponde con el final de mes, calculado a partir del campo [FechaApartir].
Para calcular el resto de los finales de mes, simplemente tienes que sumar un día al primer resultado, más o menos de la siguiente forma:
[FinalMes1]=DateAdd("d",1,[CampoFinalMes])
DateAdd, suma un día al valor obtenido, posteriormente, ya en el mes siguiente, volvemos a calcular el final de mes.
[FinalMes1]=Final_Mes([FinalMes1]).
Y así sucesivamente para el mes 2, 3,... n.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas