Liquidación de aguinaldos semestrales mediante consulta?

En una aplicación para gestionar una pequeña empresa, quisiera incluir la liquidación de los aguinaldos de los empleados. Para esto debe calcularse la suma de los sueldos cobrados por semestre y el total dividirlo entre 12. Los períodos semestrales van de Diciembre a Mayo, y de Junio a Noviembre, y no he encontrado una forma de plantearlo para hacer el cálculo. De hecho, tampoco he podido ordenar los valores del campo mes en la consulta, ya que en vez de ordenarlos por mes me los ordena por orden alfabético.

1 respuesta

Respuesta
2

Si usas los números de los meses en vez de los nombres, podrás ordenarlos correctamente.

Para hacer la suma, utiliza la función dsuma() y como criterio pon los números de mes (o los nombres) del semestre a sumar

Disculpa pero no sé como hacerlo. Verás, los datos salen de la tabla PLANILLA DIARIA, en la cual está el campo FECHA, con formato fecha/hora.

Luego tengo una consulta llamada LIQUIDACIÓN DIARIA FULANO (donde fulano es el nombre de cada empleado), que recoge los datos de esa tabla, filtrando por empleado. Esa consulta la necesito para calcular las comisiones de venta diaria de cada empleado.

Esos datos van a una segunda consulta, que agrupa por mes los valores de los campos VENTA y COMISIÓN. El campo MES está definido como:

MES: Formato$([LIQUIDACIÓN DIARIA FULANO Consulta].[FECHA],'mmmm yyyy')

Esto lo hice mediante el asistente, cuando creé la consulta, y fue la única opción que encontré para agrupar por mes las fechas diarias de la tabla PLANILLA DIARIA.

Por último, creé la consulta LIQUIDACIÓN MENSUAL FULANO, donde se calcula el sueldo del mes correspondiente, tomando los datos de la consulta anterior. Es en esta última consulta en la que visualizo los sueldos mensuales de los empleados. Y es en esta consulta donde este problema: el campo MES se ordena alfabéticamente.

Para saber el mes de una fecha, tienes la función Mes():

Si pones:

MES: Mes([LIQUIDACIÓN DIARIA FULANO Consulta].[FECHA])

Te dará los números de mes de cada fecha, y puedes agrupar y ordenar correctamente por mes.

Para saber el nombre de un mes, tienes la función NombreMes()

Para saber el año, tienes la función Año()

Usando la función Formato(), también puedes saber el número de mes:

MES: Formato$([LIQUIDACIÓN DIARIA FULANO Consulta].[FECHA],'mm')

Y por último también puedes usar la función ParcFecha()

Si quieres ordenar, además de por mes, por mes y año, tienes que colocar primero el año y luego el mes, cosa que puedes hacer de varias formas:

MESAÑO: Año(FECHA) & Mes(FECHA)

MESAÑO: Formato([FECHA],"yyyymm")

MESAÑO: ParcFecha("yyyy",[FECHA]) & ParcFecha("m",[FECHA])

Como ves, por opciones no ha de ser...

Muchísimas gracias!

Probé la segunda forma y me los muestra como 01,02,03, etc. Está perfecto. Supongo que lo mejor para calcular los aguinaldos semestrales sería que los muestre con mes y año:

01/2016, 02/2016, 03/2016  o  enero/2016, febrero/2016, marzo/2016

Pero no logré hacerlo. No sé como utilizar las funciones: NombreMes() o Año(). Discúlpame pero como dije, mi nivel de access no es avanzado. 

Podrías poner un ejemplo?

Si lees con detenimiento mi anterior respuesta, verás que esas dudas que preguntas están resueltas, y además con ejemplos..

Si quieres ordenar, además de por mes, por mes y año, tienes que colocar primero el año y luego el mes, cosa que puedes hacer de varias formas:

MESAÑO: Año(FECHA) & Mes(FECHA)

MESAÑO: Formato([FECHA],"yyyymm")

MESAÑO: ParcFecha("yyyy",[FECHA]) & ParcFecha("m",[FECHA])

Para entender mejor las funciones, te aconsejo que utilices la ayuda del propio access, pues por lo general viene bien explicada y con ejemplos para facilitar el uso de las mismas.

Muchas gracias.

Hola otra vez.

Disculpa que te moleste de nuevo, pero me surgió otro problema, y por mas que he intentado de todo en base a lo que me explicaste no lo pude resolver.

Tengo un formulario para facturación con origen de datos en una consulta, en la que le dí este formato a la fecha:

Fecha: Formato$([Factura de crédito].[FECHA],'dd  mm  yy')

Esto es para que en el formulario, en lugar de que me aparezca la fecha así: 01/09/2016, me aparezca así: 01 09 16, para que quepa en un casillero que imita los que se usaban en la viejas facturas en papel.

Usando ese formato, tanto en la consulta como en el formulario queda inhabilitada la escritura en el campo. Desde la tabla no hay problema, se puede ingresar la fecha. Pero desde la consulta o desde el formulario no se pueden ingresar datos en ese campo. Si vuelvo a poner el formato fecha que viene por defecto se soluciona.

Ayúdame por favor, ya no se me ocurre que mas intentar.

No puedes modificarlo porque ese es un campo calculado. Tienes que modificar el campo Factura de Crédito.

La otra opción que se me ocurre es que en el propio campo Factura de crédito (tanto en la tabla como en el formulario, o solo en el formulario) le definas el formato que quieres, ¡Ojo!, en sus propiedades, y te olvides de hacerlo por medio de un campo calculado en la consulta.

Bueno, para serte sincero eso ya lo había intentado también. Lo que hice fue copiar el mismo formato utilizado en la consulta, en la propiedad formato del formulario, pero una vez pegado el texto aparece así:

\Fe\cha:" For"mat"o$([F"a\ct"ur"a de" cré"d\it"o].[F"e\Cha"],'"dd  mm"  yy')"

Y obviamente no ocurre nada.

A ver si sacas algo.

Y si no, olvídate de darle el formato y trabaja directamente con el campo "fecha de crédito" y los formatos predefinidos

Se me cortó el anterior mensaje:

En la propiedad formato simplemente has de poner el formato que le quieres dar, en tu caso:

Dd mm aaaa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas