ID do artigo: 290136 - Última revisão: quinta-feira, 29 de novembro de 2007 - Revisão: 6.1

Como criar uma consulta de totais em execução no Microsoft Access

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Avançado: Requer especialização em codificação, interoperabilidade e habilidades de multiusuário.

Este artigo se aplica a um arquivo de banco de dados do Microsoft Access (.mdb ou .accdb).Para obter uma versão deste artigo para o Microsoft Access 2000, consulte 208714  (http://support.microsoft.com/kb/208714/EN-US/ ) .
Para obter uma versão deste artigo para o Microsoft Access 97, consulte 138911  (http://support.microsoft.com/kb/138911/ ) .

Nesta página

Expandir tudo | Recolher tudo

Sumário

Este artigo demonstra dois métodos que é possível usar para criar uma consulta de totais em execução. Uma consulta de totais em execução é uma consulta em que o total para cada registro é a soma desse registro e dos registros anteriores. Esse tipo de consulta é útil para exibir totais cumulativos em um grupo de registros (ou em um período de tempo) em um gráfico ou relatório.

Observação É possível ver uma demonstração da técnica usada neste artigo no arquivo de exemplo Qrysmp00.exe. Para obter informações sobre como obter esse arquivo de exemplo, consulte o seguinte artigo na Base de Dados de Conhecimento Microsoft:
207626  (http://support.microsoft.com/kb/207626/EN-US/ ) ACC2000: Relatórios de exemplo do Access 2000 disponíveis no Centro de Download

Mais Informações

Método 1

O primeiro método usa uma função DSum e critérios em uma consulta para criar uma soma parcial ao longo do tempo. A função DSum soma o registro atual e todos os registros anteriores. Quando uma consulta se mover para o próximo registro, a função DSum executará novamente e atualizará o total cumulativo.

A consulta de exemplo a seguir usa a tabela Pedidos do banco de dados de exemplo Nothwind para criar uma soma parcial dos custos de frete para cada mês de 1997. Os dados de exemplo estão limitados a um ano por razões de desempenho. Como a função DSum executa uma vez para cada registro na consulta, pode demorar vários segundos (dependendo da velocidade do computador) para que a consulta termine o processamento. Para criar e executar essa consulta, execute as seguintes etapas:
  1. Abra o banco de dados de exemplo Northwind.
  2. Crie uma nova consulta seleção e adicione a tabela Pedidos.
  3. No menu Exibir, clique em Totais.

    Observação No Access 2007, clique em Totais no grupo Mostrar/ocultar na guia Design.
  4. Na primeira coluna da grade de design da consulta, digite a seguinte expressão na caixa Campo e selecione as seguintes opções nas caixas Total, Classificação e Mostras:
       Campo: AYear: DatePart("yyyy",[OrderDate])
       Total: Group By
       Classificação: Ascending
       Apresenta: Sim
    						
    A expressão na caixa Campo exibe e classifica o ano do campo Data do Pedido.
  5. Na segunda coluna da grade de design da consulta, digite a seguinte expressão na caixa Campo e selecione as seguintes opções nas caixas Total, Classificação e Mostras:
       Campo: AMonth: DatePart("m",[OrderDate])
       Total: Group By
       Classificação: Ascending
       Apresenta: Sim
    						
    A expressão na caixa Campo classifica e exibe o mês do campo Data do Pedido como um valor inteiro de 1 a 12.
  6. Na terceira coluna da grade de design da consulta, digite a seguinte expressão na caixa Campo e selecione as seguintes opções nas caixas Total e Mostras:

    OBSERVAÇÃO: Nos exemplos a seguir, um sublinhado (_) no final da linha é usado como um caractere de continuação de linha. Remova o sublinhado no final da linha ao recriar esse exemplo.
       Campo: RunTot: DSum("Freight","Orders","DatePart('m', _
              [OrderDate])<=" & [AMonth] & " And  DatePart('yyyy', _
              [OrderDate])<=" & [AYear] & "")
       Total: Expression
       Apresenta: Sim
    						
    A expressão na caixa Campo usa a função DSum() para somar o campo Frete quando os valores nos campos AMonth e AYear forem menores que ou iguais ao registro atual que a consulta está processando.
  7. Na quarta coluna da grade de design da consulta, digite a seguinte expressão na caixa Campo e selecione as seguintes opções nas caixas Total, Classificação e Mostras:
       Campo: FDate: Format([OrderDate],"mmm")
       Total: Group By
       Classificação: Ascending
       Apresenta: Sim
    						
    A expressão na caixa Campo exibe cada mês em um formato textual, como jan., fev., mar. e assim por diante.
  8. Na quinta coluna da grade de design da consulta, digite a seguinte expressão na caixa Campo e selecione as seguintes opções nas caixas Total, Critérios e Mostras:
       Campo: DatePart("yyyy",[OrderDate])
       Total: No qual
       Critério: 1997
       Apresenta: Não
    						
    A expressão na caixa Campo filtra o conjunto de registros da consulta para apenas incluir dados de 1997.
  9. Execute a consulta. Observe que o campo RunTot exibe os seguintes registros com uma soma parcial:
       AYear    AMonth     RunTot       FDate
       --------------------------------------
       1997     1          2238,98      jan
       1997     2          3840,43      fev
       1997     3          5729,24      mar
       1997     4          8668,34      abr
       1997     5          12129,74     mai
       1997     6          13982,39     jun
       1997     7          17729,29     jul
       1997     8          22204,73     ago
       1997     9          26565,26     set
       1997     10         32031,38     out
       1997     11         36192,09     nov
       1997     12         42748,64     dez
    					

Método 2

O segundo método usa uma consulta de totais com função DSum() para criar um total em execução em um grupo.

A consulta de exemplo a seguir usa a tabela Pedidos para somar os custos de frete por funcionário, assim como calcular a soma parcial do frete. Para criar e executar a consulta, execute as seguintes etapas:
  1. Abra o banco de dados de exemplo Northwind.mdb.
  2. Crie uma nova consulta seleção e adicione a tabela Pedidos.
  3. No menu Exibir, clique em Totais.

    Observação No Access 2007, clique em Totais no grupo Mostrar/ocultar na guia Design.
  4. Na primeira coluna da grade de design da consulta, adicione o seguinte campo a caixa Campo e selecione as seguintes opções nas caixas Total e Mostras:
       Campo: EmpAlias: EmployeeID
       Total: Group By
       Apresenta: Sim
    						
    Esse campo agrupa dados por EmployeeID.
  5. Na segunda coluna da grade de design da consulta, adicione o seguinte campo a caixa Campo e selecione as seguintes opções nas caixas Total e Mostras:
       Campo: Freight
       Total: Sum
       Apresenta: Sim
    						
    Esse campo soma os dados de frete.
  6. Na terceira coluna da grade de design da consulta, digite a seguinte expressão na caixa Campo e selecione as seguintes opções nas caixas Total e Mostras:

    OBSERVAÇÃO: Nos exemplos a seguir, um sublinhado (_) no final da linha é usado como um caractere de continuação de linha. Remova o sublinhado no final da linha ao recriar esse exemplo.
       Campo: RunTot: Format(DSum("Freight","Orders","[EmployeeID]<=" _
              & [EmpAlias] & ""),"$0,000.00")
       Total: Expression
       Apresenta: Sim
    						
    A expressão na caixa Campo usa uma função DSum() para somar o campo Frete quando EmployeeID for menor que ou igual a mpAlias e formara o campo em dólares.
  7. Execute a consulta. Observe que o campo RunTot exibe os seguintes registros com uma soma parcial: ii
       Funcionário              Soma do Frete     Total Parc
       -------------------------------------------------
       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
    					

A informação contida neste artigo aplica-se a:
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Palavras-chave: 
kbinfo kbexpertiseinter kbhowto KB290136