Citas medicas, Citas disponibles

Puede colaborarme por favor,
Estoy realizando una base de datos Access 2010 para citas médicas, pero no sé cómo sacar la consulta de citas disponibles para una determinada fecha.
Las citas reservadas se van guardando, pero como le hago para mostrar disponibilidad, según fecha.
Tengo tres tablas (fecha-Citas-Horas) en ese orden relacionadas de varios a varios.
Sus campos son:
Fecha(idfecha, fecha), Citas(idfecha, id hora, descrpcion), Horas(idhora, hora)
Yo creo un formulario basado en la tabla citas y allí se van guardando las citas asignadas.
¿Pero cómo muestro las disponibles?

1 respuesta

Respuesta
1
Para empezar me parece que en dos tablas podrías hacerlo (te sobraría una) Una tabla con la fecha y el resto de datos genéricos que necesites y una tabla relacionada que te reuniese las citas (con sus horas) de cada día.
Luego haría falta saber sí las citas siempre tienen la misma duración. Si es así, creo que es algo fácil:
Creo una tabla con las horas posibles para cada día, por ejemplo: 09:00 10:00 11:00 ...
o 09:05 09:10 09:15 09:20 etc...
Luego sólo se trataría de cruzar la primera tabla (filtrada por el día) con la tabla horas y buscar los no coincidentes. También deberías exponer dónde lo quieres obtener, una consulta, un formulario, un informe...
Un saludo.
Ok,, muy bien experto, muchas gracias por su pronta respuesta.
Bueno te agradezco la sugerencia de las dos tablas, ya lo había hecho así, pero lo había quitado.
El proceso lo quiero realizar en un formulario, es allí donde quiero ir cargando las citas, eso ya se cómo se hace de hecho es fácil, pero a la vez quiero ir mostrando en una consulta las citas disponibles haciendo (Requery) a esa consulta.
Lo que no se, es precisamente eso, (de cruzar la primera tabla (filtrada por el día) con la tabla horas y buscar los no coincidentes.)
Porque he ensayado con varias consultas y no me muestra lo deseado.
Las horas las estoy colando fijas para no complicarme más, van cada 30 minutos (07:00 am, 07.30 am……)
Cuando se asigna citas se carga varios registros como son:
Fecha, y los de las tablas relacionadas, al realizar una consulta solo muestra las reservadas, no las disponibles, porque no encuentro el criterio o sentencia Sql para indicarle.
Si es mucha molestia podes hacer el ensayo cortico y me explicas si funciono, me estoy desesperando.
Mil gracias,,, de nuevo
Si el problema es ese, es que no has hecho una "consulta de no coincidentes". Utiliza el asistente para ello, sigue los pasos, indica que el campo que no puede ser coincidente es el de "hora" en tu caso. La consulta te devolverá en principio, todos los días, cada uno con sus horas no coincidentes. Luego sólo tienes que ponerle en el campo fecha, en parámetros, el que necesites (el valor de un campo del formulario, etc). Luego en el formulario, crea un subformulario, un cuadro de lista, cuadro combinado o lo que necesites y basalo en esa consulta.
Hola experto muchas gracias por responder,
Quería comentarte que yo sé hacer consultas de no concedentes, pero eso no funciono al menos de la forma como indicas.
Por otro lado también te comento que ya solucione el problema, a través de una consulta de referencias cruzadas.
Voy a seguir trabando el proyecto, espero no encontrarme con algo "duro de roer" más adelante, de ser así si me lo permites te estaré molestando de nuevo.
Te agradezco mucho la colaboración.
Pues siento que no te funcionase. Yo me he hecho un pequeño ejemplo (aunque hay cosas que tengo en mis aplicaciones, me gusta comprobar "directamente" que lo que digo funciona) y a mi me funciona perfectamente. Mostrándome las horas del día que le digo que no están ocupadas. Pero bueno, si lo has resuelto... aunque ten cuidado con las consultas de referencias cruzadas, son traicioneras, sobre todo con las horas, por experiencia. Tal vez en tu caso te funcione bien porque has escogido un formato de media hora, pero escoge uno de 10 minutos para cada hora y verás que igual te llevas una sorpresa en según que ámbito.
Pero lo dicho si has solucionado el tema me alegro, por lo demás molestar, en absoluto, si se me molestase no estaría aquí.
Muy bien, experto, de pronto falto un poco más detalle en lo que tenia que hacer, seguro que no lo supe hacer como me comentaste de forma general, pero de todas formas me gustaría saber a detalles como es el proceso al estilo :
1. Haga esto
2 esto otro
3...
Por que como decís me podría fallar la consulta r cruzada,
Le agradezco de nuevo.
Te dejo el enlace a mi "práctica", como te comento me gusta probar lo que digo. Es muy simple, lógicamente, sólo se trata de verificar que funciona. Dos tablas, una HORAS, que sólo tiene el campo "HORA" y dónde he introducido unas horas a tipo de muestra, de media hora en media hora, desde las 10:00 a las 13:00 (lógicamente aquí habría que introducir todas las necesarias)
La otra tabla (TABLA1) ¡Ya ves que original!, que tiene un campo fecha, un campo hora y uno nombre (por poner algo)
La consulta "NO COINCIDENTE" me devuelve las horas libres. Mira los datos de las 2 tablas y mira los valores que te devuelve la consulta. Introduce una nueva "cita" dentro de ese espacio de tiempo (10:00 a 13:00) y abre la consulta para comprobar que la hora de la última cita introducida ya no aparece.
Lógicamente luego habría que modificar esta consulta para lo que necesitemos, que nos filtre por la fecha, que nos muestre más campos, etc. Pero esto sería el "esqueleto"
Un saludo.
Mi ejemplo
Muy bien, te comento ya había llegado a ese paso, pero solo muestra horas, la idea es que me muestre según fecha que horas están disponibles, es justo ahí donde me pego.
Existe en el ejemplo que me envías una hora que aun estando reservada aparece como Disponible.
Necesito algo así,
Fecha - 08.00 am- 08:30 - 09:00 am-
02/09/2011 Disponible
05/09/2011 Disponible Disponible
Intenta mostrar fechas para horas disponibles y me cuenta el resultado.
Cómo te comentanba, "luegro habrá que ir modificando según las necesidades".
Para lo que quieres he creado otra consulta, que une los días con todas las horas posibles. Luego modifico la de no coincidentes, basandola en esta otra consulta y en la Tabla1 y relaciono también la fecha. Y creo que da el resultado que necesitas. Ya me comentas.
Un saludo.
El ejemplo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas