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:

  1. Abra la base de datos de ejemplo Neptuno.

  2. Cree una nueva consulta de selección y agregue la tabla pedidos .

  3. 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 .

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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:

  1. Abra la base de datos de ejemplo Neptuno. mdb.

  2. Cree una nueva consulta de selección y agregue la tabla pedidos.

  3. 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 .

  4. 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.

  5. 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.

  6. 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.

  7. 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