Cómo crear una consulta de totales en ejecución en Microsoft Access
Nota
Office 365 ProPlus pasa a llamarse Microsoft 365 Apps para empresas. Para obtener más información sobre este cambio, lea esta publicación de blog.
Avanzado: requiere capacidades multiusuario, interoperabilidad y Codificación experta.
Este artículo se aplica a un archivo de base de datos de Microsoft Access (. mdb) o a un archivo de base de datos de Microsoft Access (. accdb).
Resumen
En este artículo se muestran dos métodos que se pueden usar para crear una consulta de totales acumulados. Una consulta de totales en ejecución es una consulta en la que el total de cada registro es una suma de ese registro y los registros anteriores. Este tipo de consulta es útil para mostrar totales acumulados sobre un grupo de registros (o a través de un período) en un gráfico o informe.
Nota: Puede ver una demostración de la técnica que se usa en este artículo en el archivo de ejemplo Qrysmp00. exe.
Más información
Método 1
El primer método usa una función DSum y criterios en una consulta para crear una suma continua a lo largo del tiempo. La función DSum suma el registro actual y los registros anteriores. Cuando la consulta pasa al siguiente registro, la función DSum se vuelve a ejecutar y actualiza el total acumulado.
La consulta de ejemplo siguiente usa la tabla Orders de la base de datos de ejemplo Neptuno para crear una suma continua de los costos de transporte para cada mes en 1997. Los datos de ejemplo están limitados a un año por motivos de rendimiento. Debido a que la función DSum se ejecuta una vez para cada registro de la consulta, puede tardar varios segundos (según la velocidad del equipo) en finalizar el procesamiento de la consulta. Para crear y ejecutar esta consulta, siga estos pasos:
Abra la base de datos de ejemplo Neptuno.
Cree una nueva consulta de selección y agregue la tabla pedidos .
En el menú Ver , haga clic en totales.
Nota: En Access 2007, haga clic en totales en el grupo Mostrar u ocultar de la ficha diseño .
En la primera columna de la cuadrícula de diseño de la consulta, escriba la siguiente expresión en el cuadro campo y realice las siguientes selecciones para los cuadros total, ordenar y mostrar:
Field: AYear: DatePart("yyyy",[OrderDate]) Total: Group By Sort: Ascending Show: Yes
La expresión del cuadro campo muestra y ordena la parte del año del campo FechaPedido.
En la segunda columna de la cuadrícula de diseño de la consulta, escriba la siguiente expresión en el cuadro campo y realice las siguientes selecciones para los cuadros total, ordenar y mostrar:
Field: AMonth: DatePart("m",[OrderDate]) Total: Group By Sort: Ascending Show: Yes
La expresión del cuadro campo ordena y muestra la parte del mes del campo fecha de pedido como un valor entero entre 1 y 12.
En la tercera columna de la cuadrícula de diseño de la consulta, escriba la siguiente expresión en el cuadro campo y realice las siguientes selecciones para los cuadros total y mostrar.
Nota: En el siguiente ejemplo, se utiliza un carácter de subrayado (_) al final de una línea como carácter de continuación de línea. Quite el carácter de subrayado del final de la línea al volver a crear este ejemplo.
Field: RunTot: DSum("Freight","Orders","DatePart('m', _ [OrderDate])<=" & [AMonth] & " And DatePart('yyyy', _ [OrderDate])<=" & [AYear] & "") Total: Expression Show: Yes
La expresión del cuadro campo usa la función DSum () para sumar el campo cargo cuando los valores de los campos AMonth y AYear son menores o iguales que el registro actual que procesa la consulta.
En la cuarta columna de la cuadrícula de diseño de la consulta, escriba la siguiente expresión en el cuadro campo y realice las siguientes selecciones para los cuadros total, ordenar y mostrar:
Field: FDate: Format([OrderDate],"mmm") Total: Group By Sort: Ascending Show: Yes
La expresión del cuadro campo muestra cada mes en un formato de texto, como ene, Feb, mar, etc.
En la quinta columna de la cuadrícula de diseño de la consulta, escriba la siguiente expresión en el cuadro campo y realice las siguientes selecciones para los cuadros total, criterios y mostrar:
Field: DatePart("yyyy",[OrderDate]) Total: Where Criteria: 1997 Show: No
La expresión del cuadro campo filtra el conjunto de registros de la consulta para incluir únicamente los datos de 1997.
Ejecutar la consulta. Tenga en cuenta que el campo RunTot muestra los siguientes registros con una suma continua:
AYear AMonth RunTot FDate -------------------------------------- 1997 1 2238.98 Jan 1997 2 3840.43 Feb 1997 3 5729.24 Mar 1997 4 8668.34 Apr 1997 5 12129.74 May 1997 6 13982.39 Jun 1997 7 17729.29 Jul 1997 8 22204.73 Aug 1997 9 26565.26 Sep 1997 10 32031.38 Oct 1997 11 36192.09 Nov 1997 12 42748.64 Dec
Método 2
El segundo método usa una consulta de totales con una función DSum () para crear un total en un grupo.
La consulta de ejemplo siguiente utiliza la tabla Orders para sumar los costes de flete por empleado y para calcular una suma continua del transporte. Para crear y ejecutar la consulta, siga estos pasos:
Abra la base de datos de ejemplo Neptuno. mdb.
Cree una nueva consulta de selección y agregue la tabla pedidos.
En la Viewmenu, haga clic en totales.
Nota: En Access 2007, haga clic en totales en el grupo Mostrar u ocultar de la ficha diseño .
En la primera columna de la cuadrícula de diseño de la consulta, agregue el siguiente campo al cuadro campo y realice las siguientes selecciones para los cuadros total y mostrar:
Field: EmpAlias: EmployeeID Total: Group By Show: Yes
Este campo agrupa los datos por EmployeeID.
En la segunda columna de la cuadrícula de diseño de la consulta, agregue el siguiente campo al cuadro campo y realice las siguientes selecciones para los cuadros total y mostrar:
Field: Freight Total: Sum Show: Yes
Este campo suma los datos de flete.
En la tercera columna de la cuadrícula de diseño de la consulta, escriba la siguiente expresión en el cuadro campo y realice las siguientes selecciones para los cuadros total y mostrar.
Nota: En el siguiente ejemplo, se utiliza un carácter de subrayado (_) al final de una línea como carácter de continuación de línea. Quite el carácter de subrayado del final de la línea al volver a crear este ejemplo.
Field: RunTot: Format(DSum("Freight","Orders","[EmployeeID]<=" _& [EmpAlias] & ""),"$0,000.00") Total: Expression Show: Yes
La expresión del cuadro campo usa una función DSum () para sumar el campo cargo cuando el EmployeeID es menor o igual que el EmpAlias actual y, a continuación, da formato al campo en dólares.
Ejecutar la consulta. Tenga en cuenta que el campo RunTot muestra los siguientes registros con una suma continua:
Employee SumOfFreight RunTot ------------------------------------------------- Davolio, Nancy $8,836.64 $8,836.64 Fuller, Andrew $8,696.41 $17,533.05 Leverling,Janet $10,884.74 $28,417.79 Peacock, Margaret $11,346.14 $39,763.93 Buchanan, Steven $3,918.71 $43,682.64 Suyama, Michael $3,780.47 $47,463.11 King, Robert $6,665.44 $54,128.55 Callahan, Laura $7,487.88 $61,616.43 Dodsworth, Anne $3,326.26 $64,942.69