Consultas con fechas en Access

Tengo una base de datos para gestionar el uso de un servicio por parte de los usuarios, y quiero crear una consulta (o quizás basta con introducir una fórmula en un formulario, no se) que me devuelva el número de días que hay entre la fecha de inscripción y el final del mes para poder calcular las cuotas a pagar.
Por ejemplo, si el usuario se inscribe el día 19 de enero, la consulta debería devolverme 13, que son los días que hay entre la fecha y el final del mes. No se si existe alguna expresión en access que me busque el final de mes, pero sería interesante que me diferenciase si el mes tiene 28,29,30 ó 31 días.
Aprovecho para hacerte otra pregunta. ¿Hay alguna forma de hacer que la consulta me devuelva el nombre del mes? Es decir, si el usuario se inscribió el 19/01/2010, que la consulta me devuelva "Enero".
Muchas gracias de nuevo, espero que me puedas ayudar, es bastante agobiante cuando no se sabe hacer algo y no se tiene a quien preguntar.

2 respuestas

Respuesta
1
No se ninguna función que devuelva el último de mes, lo que se me ocurre es calcularla de la forma:
Voy al 1er día del mes siguiente (ese siempre empieza por 1) y le quito un día. Si el campo fecha inscripción lo llamamos FechaIns sería:
FinaldeMes: AgregFecha("d";-1;CFecha("01/" & Mes([FechaIns])+1 & "/" & Año([FechaIns])))
Para el nombre del mes si existe la función: Expr2: NombreMes(Mes([fechaIns]))
Respuesta
1
para saber el nombre del mes a partir de una fecha seria asi;
MonthName(Month(fecha))
Una vez sepas el mes de la fecha en cuestión, simplemente es hacer una rutina para saber los días que hay que restar, por ejemplo.
Mes= MonthName(Month(fecha))
If Mes = "Enero" or Mes = "Marzo" or Mes = "Mayo" or Mes = "Julio" or Mes = "Agosto" or Mes = "Octubre" or Mes = "Diciembre" then
Msgbox "El mes tiene 31 dias"
Rest = 31 - day(fecha)
else
If mes = "Febrero" then
rest = 28 - day(fecha)
else
rest = 30 - day(fecha)
end if
end if
Ya lo que tendrías es que adaptar el código Vba a tu formulario.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas