Access - Disponibilidad de fechas en un formulario de citas

 
Vista:

Disponibilidad de fechas en un formulario de citas

Publicado por Unka10 (6 intervenciones) el 15/07/2003 18:24:20
Hola a tod@s,

poseo un formulario de altas de citas donde recogo las citas de los pacientes de una clínica dental (Doctor, Fecha, Hora y Nombre del paciente). Para ello utilizo un control Calendar para señalar la fecha de la cita y que al entrar en el formulario se marca con la fecha actual.

Mi pregunta es la siguiente, me gustaria que al seleccionar el doctor me apareciera la disponibilidad de los siguientes 90 días (3 meses) marcando por ejemplo en colo rojo los días cuyas citas estan completas, los sabados, domingos y festivos en color negro, en amarillo los que tienen alguna cita dada y en verde los días completamente vacios.

Se os ocurre a alguien alguna manera de realizar esto??

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Disponibilidad de fechas en un formulario de citas

Publicado por Alejandro (4142 intervenciones) el 02/05/2023 17:43:20
Sí, es posible hacer lo que pides. Una forma de lograrlo sería utilizando una consulta que calcule la cantidad de citas programadas para cada día, y luego vinculando esa consulta a un subformulario dentro de tu formulario principal.

Aquí te detallo los pasos a seguir:

1. Crea una consulta que calcule la cantidad de citas programadas por día para los próximos 90 días. Por ejemplo, suponiendo que tu tabla se llama "Citas", y que la columna que contiene la fecha se llama "FechaCita", la consulta podría ser algo así:

1
2
3
4
SELECT FechaCita, COUNT(*) AS CitasProgramadas
   FROM Citas
   WHERE FechaCita >= Date() AND FechaCita <= Date()+90
   GROUP BY FechaCita

Esta consulta te dará una lista de fechas con la cantidad de citas programadas para cada una.

2. Crea un subformulario que muestre esta consulta. Este subformulario podría tener un diseño similar al siguiente:

1
2
3
4
5
6
7
8
9
+------------+---------------------+
   | Fecha Cita | Citas Programadas |
   +------------+---------------------+
   | 01/05/2023 | 3                          |
   +------------+---------------------+
   | 02/05/2023 | 2                          |
   +------------+---------------------+
   | ...                | ...                         |
   +------------+---------------------+

Este subformulario debe ser vinculado al formulario principal mediante una relación que utilice el campo "FechaCita" como clave.

3. Agrega una función que determine el color a utilizar para cada fecha en el subformulario. Esta función podría ser algo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Function ColorFecha(FechaCita As Date, CitasProgramadas As Long) As Long
       ' determinar el color a utilizar para la fecha
       If Weekday(FechaCita, vbSunday) = 1 Or Weekday(FechaCita, vbSunday) = 7 Then
           ' si es fin de semana, usar negro
           ColorFecha = vbBlack
       ElseIf CitasProgramadas = 0 Then
           ' si no hay citas programadas, usar verde
           ColorFecha = vbGreen
       ElseIf CitasProgramadas >= 3 Then
           ' si hay 3 o más citas programadas, usar rojo
           ColorFecha = vbRed
       Else
           ' en cualquier otro caso, usar amarillo
           ColorFecha = vbYellow
       End If
   End Function

4. En el subformulario, agrega una columna adicional que muestre un cuadro de color para cada fecha, utilizando la función "ColorFecha" para determinar el color a utilizar. Por ejemplo, esta columna podría tener la siguiente expresión en su propiedad "Fuente":

1
=ColorFecha([FechaCita], [CitasProgramadas])

Con estos pasos, deberías tener un subformulario que muestre la disponibilidad de citas para los próximos 90 días, con cada día marcado con un color que indica su estado (verde para días vacíos, amarillo para días con algunas citas, rojo para días llenos, negro para fines de semana y festivos). Espero que esto te ayude.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar