Imprimir página | Cerrar ventana

Agendar citas como en Outlook

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84956
Fecha de impresión: 27/Marzo/2026 a las 06:03


Tema: Agendar citas como en Outlook
Publicado por: hefest0
Asunto: Agendar citas como en Outlook
Fecha de publicación: 20/Enero/2020 a las 18:02
Buenas tardes,
estoy desarrollando una base de datos de reuniones, y buscando ejemplos de BBDD de "taco" y similares, me he creado una agenda en access que me permite programar mis reuniones y citas perfectamente. Llevo con ella ya un tiempo y le he agregado colores según la categoría de la reunión, y quiero ir más allá simulando Outlook; me gustaría poder programar reuniones periódicas. Hasta ahora no he tenido problema con reuniones cada "x" días; cada "y" semanas o cada "z" meses. Ahora me gustaría generar reuniones semanales que se repitan un día concreto de la semana (lunes, martes, miércoles...) y también mensuales, el primer lunes de cada mes; el último jueves cada 3 meses...
Una vez calculadas estas fechas, ¿hay alguna forma de agregar estas series de fechas automáticamente a la tabla? Como estas reuniones/citas tienen el mismo contenido pero cambian las fechas, se pueden generar automáticamente los registros?
A ver si puede alguien orientarme se lo agradecería mucho,
Un saludo y gracias de antemano.



Respuestas:
Publicado por: xavi
Fecha de publicación: 20/Enero/2020 a las 19:12
Vaya por delante que, dado que insertarás registros en una tabla, deberás indicar para esas citas periódicas una fecha límite o un numero de repeticiones (se podría simular el "infinito" pero deberías tener una tabla de "citas infinitas" que, en cada vez que vayas a una determinada fecha, compruebe si deberían existir citas y, de no existir, crearlas: un faenón como alguien le de por probar si tu agenda llega al 9 de septiembre del 9999)

Para las que se repiten un día de la semana.
Un bucle Do..Loop dónde, por cada iteración:
- sumas los días necesarios a una fecha de referencia (función DateAdd)
- insertas un registro en la tabla
- evalúas si has superado la fecha límite o el numero de repeticiones por si te sales del bucle

Para las que se repiten con otro patrón... en algunos casos la misma técnica que en la anterior aunque me temo que deberás aplicar tácticas distintas en cada caso.
Ejemplo: primer lunes de mes
0. tomar un mes y año iniciales
(inicio bucle)
1. crear fecha de referencia como día 1 del mes y año inicial (función DateSerial).
2. comprobar el día de la semana por si es lunes (función WeekDay) 
3. si no lo fuera, sumar 1 día (función DateAdd) y volver al punto 2
4. En este punto es el primer lunes de mes: salvar la cita
5. Evaluar si hemos superado el límite por si salimos del bucle
6. sumar 1 al mes inicial y volver al punto 1
(fin bucle)

Espero que, como punto de partida te valga.

Un saludo


-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: mounir
Fecha de publicación: 20/Enero/2020 a las 21:03
Hola!

Tengo este ejemplo guardado a ver si le puedes sacar provecho

https://onedrive.live.com/?cid=9788C8CFE7EB8590&id=9788C8CFE7EB8590%21194&parId=9788C8CFE7EB8590%21190&o=OneUp" rel="nofollow - Outlook_Style_Calendar_V3c.zip

-------------
Un Saludo.


Publicado por: hefest0
Fecha de publicación: 20/Enero/2020 a las 22:08
Muchas gracias Xavi, me has dado unas buenas pautas para comenzar a currar. ¡Genial! ha he comenzado a limitar el tope de fecha; y también el cálculo de los períodos usando fix para buscar el valor entero  Thumbs Up menor en fracciones de tiempo (semanas/meses) con decimales cuando aplico repeticiones de dos, tres semanas/meses. Ahora probaré lo de los días de semana o mes. os pondré el código cuando lo tenga preparado.

Un saludo


Publicado por: hefest0
Fecha de publicación: 20/Enero/2020 a las 22:10
Gracias Mounir, muy bueno tu ejemplo, buscaré formas de aplicarlo a lo que necesito. Un saludo y gracias!!!!



Imprimir página | Cerrar ventana