Turnos. Mostrar datos de una tabla de referencias cruzadas en un calendario.

Tengo una tabla de referencias cruzadas para turnos diarios y necesito mostrarla en una forma prolija en un informe o formulario (o ambos si se puede).

Actualmente al generar la tabla me quedan los nombres según el día de turno en columnas paralelas. De esta menera me es útil pero muy rudimentario.

Además los días se ordenan alfabéticamente y no por fecha y debo acomodarlos manualmente.

Otra limitación es que en cada columna diaria los nombres me quedan defasados comenzando a mostrar los del día subsiguiente, no a la par, sino al final del listado de nombres del día anterior haciendo listados largos y difíciles de visualizar. Adjunto un ejemplo.

1 respuesta

Respuesta
1

¿Puedes subir o enviarme (a [email protected]) una copia de la BD para ver cómo haces la consulta de refs. Cruzadas?

Acabo de recordar este ejemplo de Chea, que igual te sirve de ayuda u orientación: https://geeks.ms/access/gestin-de-turnos-de-trabajo-con-access/

¡Gracias! Te envíe la base al correo. ([email protected])

A ver, que más de esto ya no consigo...

Pero antes, un apunte sobre el por qué tu consulta de refs cruzadas no ordena las columnas como debe: aún cuando los nombres de los encabezados son "fechas", Access los toma como textos (que es lo que son al ser los nombres de las columnas). Además, al usar Formato() como lo haces para formatear la fecha, solo complicas el asunto. Si en vez del formato "d ddd mmm" que tienes actualmente pones "aaaa/mm/dd" ya te las ordena en el orden correcto.

Y ahora al lío:

1º/ copia en un módulo esta función de Jesus Mansilla: http://www.accessaplicaciones.com/ejemplos.html#sq01 

Pero le has de hacer un cambio: donde pone DbExterna pon CurrentDb

2º/ Como veo que en tu consulta de refs cruzadas filtras por horas nulas y entre fechas, crea una consulta nueva con esta SQL:

SELECT [Paciente Datos personales cns].IDpacienteHC, [Paciente Datos personales cns].Nombres, [Seguimiento Turnos].FechaTurno, [Seguimiento Turnos].HoraTurnoAtendido, [Seguimiento Turnos].FrecuenciaTurno
FROM [Paciente Datos personales cns] INNER JOIN [Seguimiento Turnos] ON [Paciente Datos personales cns].IDpacienteHC = [Seguimiento Turnos].IdPaciente
WHERE ((([Seguimiento Turnos].FechaTurno) Between Date()-15 And Date()+30) AND (([Seguimiento Turnos].HoraTurnoAtendido) Is Null))
ORDER BY [Paciente Datos personales cns].IDpacienteHC, [Seguimiento Turnos].FechaTurno;

A esta consulta la llamo 01Sv_TURNOS

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas