Contar datos en un formulario principal con un subformulario en Access

Por hacer un ejemplo lo más parecido posible al que expone nuestro lector, partimos de una base de datos con las tablas alumnos y asistencia, entre las que existe una relación uno a varios:


La tabla alumnos es la tabla uno de la relación y la tabla asistencia es la tabla varios de la relación, ya que un alumno tiene varias asistencias.

Los datos de los alumnos los reflejamos en el formulario principal Alumnos y los datos de la asistencia de cada alumno los reflejamos en el subformulario Asistencia. De esta forma partimos de un ejemplo análogo al que propone el lector.

El diseño del formulario sería el siguiente:

Para poder mostrar el número de asistencias de cada tipo que tiene cada alumno creamos una consulta de agrupar por totales que cuente el tipo de asistencia por alumno.

Esta consulta tendría el siguiente diseño:

Agregamos ambas tablas y bajamos a la cuadriculas QBE el campo id de la tabla alumnos para poder realizar la cuenta por alumno.

Al ejecutar la consulta veremos el número de asistencia de cada tipo(A, F o P) de cada uno de los alumnos (que tenemos identificados mediante su id):

A esta consulta le damos el nombre CONTAR_ASISTENCIA

Para contar el total de asistencias en general de todos los alumnos, creamos una consulta de agrupar por totales, basada en la tabla asistencia.

La consulta tendría el siguiente diseño:

Al ejecutar la consulta veremos el número total de asistencias de todos los alumnos

A esta consulta le damos el nombre CUENTA_TOTAL.

Estas dos consultas las vamos a mostrar mediante subformularios en el formulario principal Alumnos. De esta manera quedarán reflejados, tanto los números de asistencia por alumno, como el total de asistencia de todos ellos.


A continuación vamos a insertar un subformulario basado en la consulta CONTAR_ASISTENCIA que cuenta la asistencia de cada alumno:

Para ello accedemos al diseño del formulario e insertamos un subformulario. Se inicia el asistente para subformularios.
En el primer paso seleccionamos la opción Usar tablas y consultas existentes



Pulsamos siguiente.

Elegimos la consulta contar_asistencia, del desplegable. Esta consulta es la que nos permite contar la asistencia por alumno.
Pasamos todos los campos de la consulta la parte derecha de la ventana.





Pulsamos siguiente.

En el paso en el que debemos definir los campos que vinculan el formulario seleccionamos Elegir de una lista y en la lista inferior pulsamos mostrar CONTAR_ASISTENCIA para cada registro de alumnos usando id.




Pulsamos siguiente.

En el último paso escribimos el nombre del subformulario y pulsamos Finalizar.



Resultado en la vista diseño del formulario Alumnos:


En la vista formulario veremos que el subformulario refleja la cuenta del tipo de asistencia de cada alumno:


Podemos no mostrar el id del alumno en el subformulario contar_asistencia para que el diseño quede más claro. Para ello abrimos el subformulario contar_asistencia en vista diseño y eliminamos el campo id, pulsando la tecla Supr.



Así el diseño del formulario principal queda más sencillo y claro:



Seguidamente insertamos un subformulario basado en la consulta que cuenta la asistencia total de todos los alumnos:

Accedemos al diseño del formulario principal Alumnos e insertamos un subformulario. Se inicia el asistente para subformularios, seguimos los mismos pasos que hemos explicado anteriormente, seleccionando la consulta CUENTA TOTAL, y pasando todos los campos de la consulta a la parte derecha de la ventana.

En el tercer paso, como la consulta que vamos a mostrar en el subformulario, muestra un total general no es necesario que la vinculemos a ningún campo del formulario principal. Por eso elegimos de la lista la opción Ninguno.



Pulsamos Siguiente.

Escribimos el nombre del subformulario, por ejemplo Total asistencias de todos los alumnos y pulsamos Finalizar.

El resultado sería el siguiente, mostramos el total de asistencias por alumno en el primer subformulario basado en la consulta CONTAR_ASISTENCIA y mostramos el total de asistencias de todos los alumnos en el segundo subformulario basado en la consulta CUENTA_TOTAL:


Otra forma de mostrar el total de asistencia de todos los alumnos sería crear un botón de comando, que al pulsarlo abriera la consulta CUENTA_TOTAL. Para crear este botón de comando seguiríamos los siguientes pasos:

Extenderíamos el control botón de comando en la vista diseño del formulario, entonces se inicia el asistente:

En el primer paso en la categoría Otras seleccionamos Ejecutar consulta.


Pulsamos Siguiente.

En el siguiente paso seleccionamos la consulta que queremos ejecutar, que en nuestro caso es CUENTA_TOTAL

Pulsamos Siguiente.

En el siguiente paso seleccionamos la apariencia del botón. En el ejemplo, seleccionamos texto y escribimos Ver Total Asistencias.

En el siguiente paso no es necesario que cambiemos el nombre al botón. Solo hemos de pulsar en Finalizar.

En la vista Formulario al pulsar sobre el botón se ejecutará la consulta CUENTA_TOTAL, en la cual también podremos ver el número total de asistencias.

0 comentarios:

Publicar un comentario

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Top WordPress Themes