Duda consulta referencias cruzadas o informe en access

Quiero sacar un cuadrante de turnos anual por trabajador. El tema es que tengo realitzada la consulta de ref. Cruzados y la info me sale en una única fila. ¿Cómo realizo ahora el informe? ¿He de modificar la consulta de refencias cruzados?

Ahora me sale así:

DNI | NOMBRE | CUADRANTE | 01/01/2021 | 02/01/2021 | 03/01/2021 | 04/01/2021 ...
xxx | MARIA | C1 | Mañana | Tarde | Noche | Fiesta ...

Quiero obtenir un informe con el cuadrante anual tipo así:

DNI: xxx - NOMBRE: MARIA - Cuadrante: C1

DIA | ENERO | FEBRERO | MARZO ...
1 | Mañana | ...
2 | Tarde | ...
3 | Noche | ...

2 Respuestas

Respuesta
1

Sería interesante saber como "rellenas" los turnos, si, digamos, día a día, si por mes, etc.

Por ejemplo, supongamos que tengo una tabla Empleados con sus datos Personales(aunque se podría hacer con otra tabla), entre ellos DNI, Nombre, Cuadrante( no sé si va ahí) y otra tabla Turnos, a la que le he añadido dos campos Mes y Día

Si tengo el DNI, que es único para cada persona, ya tengo todos sus datos

Con amblas tablas, construyo u formulario con subformulario. Te muestro el subformulario, donde los controles Mes y Día están ocultos y no son punto de tabulación. En las propiedades del cuadro de texto fecha, en Eventos-Después de actualizar tengo creado un procedimiento de evento con

Private Sub Fecha_AfterUpdate()
Mes = Format([Fecha], "MMMM")
Dia = Day([Fecha])
End Sub

De forma que a medida que voy rellenando datos en el formulario

De forma que me deja la tabla Turnos como

Con esta misma tabla construyo una consulta de referencias cruzadas como

Y con ella como origen puedo construir un informe agrupado por DNI y

Como tengo el DNI puedo saber su nombre y su cuadrante, por eso en vista diseño del informe le añado dos cuadros de texto Nombre y Cuadrante, y en el evento Al dar formato de la sección donde están esos cuadros de texto le pongo

Nombre = DLookup("nombre", "empleados", "dni='" & Me.DNI & "'")
Cuadrante = DLookup("cuadrante", "empleados", "dni='" & Me.DNI & "'")

¿Qué quieres ver el informe de un trabajador en particular? Pues en algún lado, por ejemplo en un combinado donde elijas el DNI( o el nombre, depende del combinado) lo eliges y pones

Docmd.openreport,"turnos",acpreview,,"DNI='" & me.nombredelcombinado & "'"

Que quieres ver el de todos los trabajadores

Docmd. Openreport"turnos", acpreview

En fin que tienes muchas posibilidades.

Respuesta
1

Existe un ejemplo muy didáctico de Chea, este es el link Gestión de turnos de trabajo con Access – Access (geeks. Ms)

Aunque la respuesta de Julián responde a su pregunta, le enseño un ejemplo de una librería que subí a YouTube hace un tiempo, que permite el manejo de festivos de Colombia y la aplicación en fijar tunos para vigilantes, como el código es libre puede ver como aplico las consultas de referencias cruzadas pero por código, debido a que genero formularios y reportes dinámicos, es decir cambian los encabezados de acuerdo con el mes o semana que se programe o consulte. El ejemplo es mucho más complejo ya que maneja diferencias de tiempo y los festivos sin tablas de exclusión de festivos, ya están en la librería hasta el año 2200.

MENU DEL EJEMPLO

PROYECCIÓN DE LOS TURNOS

FORMULARIO REGISTRO DE LA PROYECCIÓN DE TURNOS

En este formulario se pueden editar o retirar turnos.

LIQUIDACIÓN DE LOS TURNOS DEL MES O SEMANA

REPORTE DE LA PROYECCIÓN DE LOS TURNOS

CONSULTA DE LOS TURNOS POR SEMANA (Formulario Dinámico)

Observe los encabezados de la semana los domingos y festivos están en rojo.

REPORTE TURNOS DE LA SEMANA

En síntesis la idea es que estudie el código de las consultas SQL de referencias cruzadas, es necesario para el origen de datos de formularios y reportes, algo que no se puede hacer con el asistente de Access.

Puede ver el video en este link https://www.youtube.com/watch?v=vOJzcrz1WOc&ab_channel=EduardoP%C3%A9rezFern%C3%A1ndez 

Ahí está el link de descarga del ejemplo y la librería (la elaboré en VB.NET). Al ejecutar el Setup.Exe se registra en su ordenador, también están la instrucciones en archivo texto.

Vuelvo y le repito la respuesta de Julián es acertada solo quiero presentarle algo más complejo y con bastante uso en Colombia, ya que el sistema hace los cortes de hora extra y la liquidación automáticamente de acuerdo con el calendario laboral de Colombia.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas