En Access 2016 tenemos una manera muy sencilla de realizar una agrupación y/u ordenación de datos cuando construimos un informe. En este artículo se explicará cómo realizar dichas operaciones de agrupación y ordenación, y se aprovechará para mostrar ejemplos de algunas agrupaciones y ordenaciones (con algún truco añadido) sumamente interesantes, basadas todas ellas en un campo de tipo texto y en un campo de tipo fecha.

Nuestros datos de trabajo

Para entender los resultados veamos cuál es el origen de datos, y el origen de datos es algo tan simple como una relación de clientes con una fecha y un importe de venta. Esos datos están almacenados en la tabla llamada TDatos (el enlace a esta base de ejemplo se proporciona al final del artículo), y una muestra de los mismos sería la siguiente:

La creación del informe y las opciones de agrupación/ordenación

Crearnos un informe sobre la tabla anterior no tiene mayor secreto que, con la tabla seleccionada, irnos a menú Crear > Grupo de Opciones Informes > Informe. De esta manera se nos creará un informe con una estructura muy simple, tal y como se muestra en la ilustración:

Vamos, en primer lugar, a sacarnos la ventana de agrupación y ordenación para poder, después, empezar a trabajar con comodidad. Para ello, y con el informe en vista diseño, accedemos al súper-menú (1) Herramientas de diseño de informe > (2) Menú Diseño > (3) Grupo de opciones Agrupación y Totales > (4) Agrupar y ordenar.

Eso hará que se nos muestre, en la parte inferior del informe, la ventana de agrupación y ordenación.

Agrupación por campo de texto

Para nuestro ejemplo vamos a agrupar por cliente. Para ello hacemos clic sobre la opción «Agregar un grupo», lo que nos permitirá seleccionar el campo [Cliente]. Tras su selección veremos que se nos ha creado un grupo en el informe.

Lógicamente, la expresión «con A en la parte superior» nos indica una ordenación alfabética ascendente. Si desplegamos la opción «Más» veremos que podemos:

  • Agrupar por valor completo o por número de caracteres

  • Configurar los totales de campos numéricos susceptibles de poder aplicar operaciones aritméticas (en nuestro ejemplo, el importe de la venta)

  • Añadir un título
  • Mostrar u ocultar las secciones de encabezado / pie de grupo
  • Configurar la manera de ver el grupo en la página

Con una configuración simple, agrupando solo por el valor completo, vemos que el resultado obtenido nos muestra los clientes agrupados por su nombre.

Sin embargo, los datos siguen pareciendo anárquicos. Se impone una ordenación, y, en este caso, podemos elegir entre dos opciones: ordenar por fecha u ordenar por importe. Hagamos clic pues, en nuestra ventana de agrupación y ordenación, sobre la opción «Agregar un Orden», y elijamos el campo [ImporteVenta], que a su vez podemos configurar con un orden ascendente o descendente. Veremos también que se nos crea una especie de esquema con información sobre la agrupación y la ordenación que hemos configurado.

Y, si desplegamos el «Más», vemos que en la ordenación tenemos diversas opciones:

  • Ordenación por valor completo o por grupos de n elementos
  • Con totales para campos numéricos susceptibles de poder aplicar operaciones aritméticas.
  • Añadir un título
  • Mostrar u ocultar las secciones de encabezado / pie de grupo
  • Configurar la manera de ver el grupo en la página

El resultado es el siguiente:

TRUCO

Si no nos gusta la repetición de valores, es decir, la repetición de nombres en cada registro, podemos sacar las propiedades del campo [Cliente] en la sección «Detalle» y, en la pestaña Formato, situar el valor de la propiedad «Ocultar Replicados» en SÍ. El resultado de esta manipulación se nos mostraría así:

TRUCO

Si hemos seguido el ejemplo habremos visto que se nos ha creado una sección llamada «Encabezado de Cliente». Hasta ahora lo hemos utilizado para dar un poco de separación entre cliente y cliente.

Para remarcar un poco más dicha separación podemos redimensionar la sección al tamaño que creamos oportuno y darle un color de fondo. Ahora bien, debemos tener en cuenta el cebreado, activado por defecto. Para ello, una vez seleccionado y aplicado el color que queremos para esta sección, sacamos las propiedades de la sección y, en la pestaña Formato, copiamos el valor que haya en la propiedad «Color de fondo» y lo pegamos en la propiedad «Color de fondo alternativo».

El resultado de la manipulación anterior sería:

Agrupación por campo fecha

Vamos a ver la agrupación por campo fecha porque nos permite, si seleccionamos esta opción, agrupaciones muy interesantes.

Lo que es el proceso para crear el informe y sacar la pantalla de agrupación y ordenación es el mismo que se ha explicado en el apartado anterior. Solo que, en este caso, en lugar de elegir una ordenación por [Cliente], elegimos el campo [FechaVenta]

Lo primero que vemos es que la primera opción de agrupación es por periodo de tiempo; esto es, podemos elegir por valor completo, por trimestre, por día, por mes… hasta por un periodo personalizado.

Si hacemos clic en la opción «Más» obtenemos las mismas configuraciones que hemos visto en el apartado anterior: agregar título, mostrar o no encabezados de página y pie de sección y configuraciones varias para mantener junto o no el grupo en página.

Supongamos que hemos elegido una agrupación por mes. El resultado sería el siguiente:

Inmediatamente vemos que debemos realizar una ordenación para que los datos queden más «digeribles». Sin embargo, en este caso vamos a aplicar una doble ordenación: ordenaremos por fecha de venta y, al mismo tiempo, por importe de mayor a menor.

Con lo que obtenemos:

TRUCO

En la sección «Encabezado de FechaVenta» (es decir, en el encabezado del grupo creado) volvemos a tener un espacio en blanco. Dadas las características de cómo se está mostrando la información en este supuesto que estamos explicando, veamos una pequeña operación que puede darle un poco de vida a nuestro informe.

Lo que haremos será añadir un cuadro de texto independiente y, en su interior, escribiremos la siguiente expresión:

=month([FechaVenta]) & » – » & ucase(monthname(month([FechaVenta])))

Es decir, y traducido a un lenguaje «humano»:

Mes de la fecha de venta – en mayúsculas (el nombre del mes (del mes de la fecha de venta)))

Y con algunos otros pequeños cambios de formato obtenemos:

TRUCO

¿Cómo van creciendo nuestras ventas por mes? ¿Y nuestras ventas totales?

Para responder estas preguntas vamos a añadir dos cuadros de texto independientes en la sección Detalle, y en ambos vamos a escribir el nombre del campo que nos da el importe de la venta, es decir, [ImporteVenta]

Vamos a sacar las propiedades de ese primer nuevo control que hemos añadido y configuramos, en la pestaña Datos, la propiedad «Suma Continua» con el valor «Sobre Grupo»

Hacemos lo mismo con ese segundo nuevo control, solo que ahora el valor asignado a la propiedad «Suma Continua» será «Sobre Todo»

Y, con un poco de formato al gusto, vemos cómo nuestras ventas van subiendo por cada día del mes…

…y por totales que siguen creciendo mientras que la cuenta se reinicia en cada cambio de mes…

TRUCO

¿Cuántas ventas ha habido en cada mes, numerándolas?

Si queremos saber cuántas ventas ha habido en cada mes bastaría con configurar nuestro informe, en la opción correspondiente de la ventana Agrupación y Ordenación, para que se nos mostrara la sección de pie.

En esa sección de pie añadimos un cuadro de texto independiente y en él escribimos función Count(). Para hacerlo más bonito, yo he añadido dos cuadros de texto independientes en esa sección de pie, el primero con la expresión:

=»Total # ventas del mes de » & monthname(month([FechaVenta]))

Y el segundo con la función que comentábamos:

=count(«*»)

Con el bonito resultado siguiente:

Pero eso no es lo que hemos pedido, realmente. Lo que queremos es numerar las ventas en cada uno de los registros.

Para ello, y basándonos en la sistemática del truco anterior, lo que haremos será añadir, en la sección detalle, un cuadro de texto independiente, configurar su propiedad «Suma Continua» como «Sobre Grupo» (¡eso ya deberíamos saber cómo hacerlo!) y, como expresión dentro del control, escribimos, simplemente:

=1

El resultado final será el siguiente:

Como vemos, ahora cada línea de venta tiene su numeración correlativa (y se reinicia en cada cambio de mes).

Y se acabó el artículo

Efectivamente, este artículo se ha acabado, pero no todas las opciones de configuración de los informes en Access (imposible explicarlas aquí, obviamente). Así que os animo a investigar esas opciones para conseguir unos informes atractivos y útiles.

Y, si a alguien puede ayudarle, os dejo aquí el enlace a la base de datos que he utilizado para desarrollar el artículo.

Author: Miguel Rigo

Miquel Rigo ‘Neckkito’ es MVP de Microsoft Access. Presidente de Access User Groups España (AUGE https://accessusergroups.org/espana), cofundador del foro NkSvAccessolutions (http://nksvaccessolutions.com), administrador del grupo de Facebook Aprendamos Access (https://www.facebook.com/groups/390440184389507) y organizador y ponente en el evento anual de Access «Descubra el Poder de Sus Datos» (https://descubraelpoderdesusdatos.com/), en Madrid. Puedes seguirle en su web http://bit.ly/NckAccess

Agrupación y ordenación en informes con Access 2016 (y algunos truquillos de aderezo)
Etiquetado en:                

3 pensamientos en “Agrupación y ordenación en informes con Access 2016 (y algunos truquillos de aderezo)

  • 31 marzo, 2018 a las 8:43 pm
    Enlace permanente

    Buenas tardes, desde Bucaramanga, Santander, Colombia, muy bueno el articulo referenta al informe, seria bueno un manual para trabajar con SQL y relacionar tablas.

    Responder
  • 7 agosto, 2020 a las 1:58 pm
    Enlace permanente

    AYUDA! Hola, me llamo Fabricio Valenzuela. Estoy desarrollando una BDD para una consulta de un seguro social en argentina. Voy armando lo q quieren q sea en el hospital municipal de mi pueblo, en 40 dias he hecho con 6 Tablas(Consulta(TPteCons), Consulta/guardiaYPteGdia), Internacion(TPteInt), Practicas(TPtePrac),odontologia(TPteOdont) y Traslados(TPteTras). Estan cargados de prueba en TPteCons para poder funcionar los formularios luego. Todavia estoy aprendiendo y me surgen fallas en el formulario FPteCons e Informes (Factura) donde quieren q visualice y luego imprima dicha factura.
    He seguido algunos de tus pasos y tome como ejemplo tu proyecto (INFORME CON MARCADORES) donde desean que se impriman agregando numero de factura y el mes correspondiente ademas la fecha. puedes tu revisar mi BDD? te enviare mi email. Desde ya muchas gracias. No se si me explique bien… pues preguntame. Gracias Miguel Rico(Necckito)

    Responder

Deja una respuesta

Tu dirección de correo electrónico no será publicada.