Crear Calendario de Visitas a partir de un formulario en ACCESS

Tengo una BD en access, en la cual al querer crear un calendario de visitas me percate que ACCESS en Microsoft 365 no deja adjuntar Calendario (Controles activex). En ese sentido cree dos tablas. La principal VISITAS y la secundaria VISITAS_CLIENTES vinculadas ambas en un formulario y subformulario con el campo numero Visita. En la primera solo tenga el mes y el numero y en la segunda tabla datos como idcliente, fecha, motivo. Etc. Lo que quiero es crear una consulta y posterior un reporte donde por ejemplo Me muestra un calendario donde en cada día registrado me aparezcan los clientes visitados para ese día y así sucesivamente, oero en un formato lo más parecido a un calendario. Es posible esto.
El calendario debería ser algo así como el de Microsoft Outlook en vista de mes. O si tienen una menera más sencilla de hacer. Y como siempre fácil de ver en un reporte. (Amigable)

Respuesta
1

Necesita conocimientos de SQL. Sí, es posible crear un calendario de visitas en Access utilizando las tablas que ya tiene configuradas. Aunque Access no incluye un control de calendario nativo como en versiones anteriores, puede lograr una visualización estilo calendario mediante un enfoque basado en un reporte de matriz. Le dejo un plan paso a paso:

1. Configurar las tablas y relaciones

Asegúrese de que las tablas VISITAS y VISITAS_CLIENTES estén correctamente vinculadas mediante el campo NumeroVisita.

La tabla VISITAS_CLIENTES debe incluir al menos los siguientes campos relevantes:

IdCliente
Fecha
Motivo

2. Crear una consulta para consolidar datos

Cree una consulta para obtener los datos agrupados por día del mes y cliente.

SELECT 
    Day([Fecha]) AS Dia, 
    [IdCliente], 
    [Motivo], 
    Format([Fecha], "mmmm yyyy") AS MesAnio
FROM 
    VISITAS_CLIENTES
WHERE 
    Format([Fecha], "mmmm yyyy") = [Ingrese el mes y año, por ejemplo: 'Enero 2025']
ORDER BY 
    Day([Fecha]), [IdCliente];

Explicación:

La función Day([Fecha]) extrae el día del mes.
La función Format([Fecha], "mmmm yyyy") filtra los registros del mes específico que el usuario indique.
Este formato organiza los datos por día para que luego los ubique en un formato estilo calendario.

Guarde la consulta con un nombre como ConsultaCalendarioVisitas.

3. Crear una tabla auxiliar para los días del mes

Access no tiene una estructura de calendario por defecto, pero puede crear una tabla llamada DiasMes que contenga los días del 1 al 31. Esta tabla se usará para simular el diseño de un calendario.

Estructura de DiasMes:
Campo: Dia (Número, enteros del 1 al 31).
Llena la tabla con los números 1 al 31.

4. Crear una consulta de unión para construir el calendario

Use una consulta de unión para combinar los días del mes con las visitas. Por ejemplo:

SELECT 
    DiasMes. Dia, 
    Nz(Clientes. IdCliente, 'Sin visitas') AS Cliente, 
    Nz(Clientes. Motivo, 'Sin motivo') AS Motivo
FROM 
    DiasMes 
LEFT JOIN ConsultaCalendarioVisitas AS Clientes 
ON DiasMes.Dia = Clientes.Dia;

Explicación:

Se usa un LEFT JOIN para asegurar que todos los días del mes aparezcan, incluso si no tienen visitas.
Nz reemplaza valores nulos con texto predeterminado, como "Sin visitas".
Guarde esta consulta como ConsultaUnionCalendario.

5. Crear un reporte estilo calendario

Vaya al asistente para reportes y seleccione la consulta ConsultaUnionCalendario.

Diseñe el reporte con un formato de cuadrícula (7 columnas para los días de la semana y hasta 6 filas para semanas).

Configure los días de la semana como encabezados de columnas (Lunes, Martes, etc.).

En cada celda, agrega los campos:

Día: para mostrar el número del día.
Cliente: para mostrar los clientes programados.
Motivo: para incluir detalles.

6. Formato final

Aplique formato para que el reporte sea amigable:
Coloree celdas alternas.
Ajuste fuentes y alineación.
Agregue un encabezado con el mes y año seleccionado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas