Artigo: 290136 - Última revisão: terça-feira, 25 de Março de 2008 - Revisão: 6.3

Como criar uma consulta de total parcial 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 conhecimentos avançados sobre codificação, interoperabilidade e ambiente multi-utilizador.

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

Nesta página

Expandir tudo | Reduzir tudo

Sumário

Este artigo demonstra dois métodos que pode utilizar para criar uma consulta de total parcial. Uma consulta de total parcial é uma consulta na qual o total de cada registo é uma soma desse registo com quaisquer registos anteriores. Este tipo de consulta é útil para apresentar o total cumulativo de um grupo de registos (ou ao longo de um período de tempo) num gráfico ou relatório.

Nota Poderá ver uma demonstração da técnica utilizada neste artigo no ficheiro de exemplo Qrysmp00.exe. Para obter informações sobre como obter este ficheiro de exemplo, consulte o seguinte artigo na Base de Dados de Conhecimento Microsoft:
207626  (http://support.microsoft.com/kb/207626/ ) ACC2000: Estão Disponíveis Consultas de Exemplo do Access 2000 no Centro de Transferências

Mais Informação

Método 1

O primeiro método utiliza uma função DSoma e critérios numa consulta para criar uma soma parcial ao longo do tempo. A função DSoma soma o registo actual com quaisquer registos anteriores. Quando a consulta passa para o registo seguinte, a função DSoma é executada novamente e actualiza o total cumulativo.

A consulta de exemplo seguinte utiliza a tabela Encomendas da base de dados de exemplo Adamastor para criar uma soma parcial dos custos de transporte incorridos em cada mês de 1997. Os dados de exemplo estão limitados a um ano por motivos de desempenho. Visto que a função DSoma é executada uma vez para cada registo na consulta, o respectivo processamento poderá demorar vários segundos (dependendo da velocidade do computador). Para criar e executar esta consulta, siga estes passos:
  1. Abra a base de dados de exemplo Adamastor.
  2. Crie uma nova consulta seleccionar e adicione a tabela Encomendas.
  3. No menu Ver, clique em Totais.

    Nota No Microsoft Office Access 2007, clique em Totais no grupo Mostrar/Ocultar do separador Estrutura.
  4. Na primeira coluna da grelha de estrutura da consulta, introduza a seguinte expressão na caixa Campo e efectue as selecções seguintes nas caixas Total, Ordenar e Mostrar:
       Campo: AAno: PartData("aaaa",[DataEncomenda])
       Total: Agrupar por
       Ordenar: Ascendente
       Mostrar: Sim
    						
    A expressão existente na caixa Campo apresenta e ordena a parte do ano do campo DataEncomenda.
  5. Na segunda coluna da grelha de estrutura da consulta, introduza a seguinte expressão na caixa Campo e efectue as selecções seguintes nas caixas Total, Ordenar e Mostrar:
       Campo: AMês: PartData("m",[DataEncomenda])
       Total: Agrupar por
       Ordenar: Ascendente
       Mostrar: Sim
    						
    A expressão existente na caixa Campo ordena e apresenta a parte do mês do campo DataEncomenda como um valor inteiro entre 1 e 12.
  6. Na terceira coluna da grelha de estrutura da consulta, introduza a seguinte expressão na caixa Campo e efectue as selecções seguintes nas caixas Total e Mostrar.

    NOTA: No exemplo seguinte, um carácter de sublinhado (_) no final de uma linha é utilizado como um carácter de continuação de linha. Remova o carácter de sublinhado do final da linha quando recriar este exemplo.
       Campo: TotParc: DSoma("Transporte","Encomendas","PartData('m', _
              [DataEncomenda])<=" & [AMês] & " E PartData('aaaa', _
              [DataEncomenda])<=" & [AAno] & "")
       Total: Expressão
       Mostrar: Sim
    						
    A expressão existente na caixa Campo utiliza a função DSoma() para somar o campo Transporte quando os valores existentes nos campos AMês e AAno são menores ou iguais ao registo actual que a consulta está a processar.
  7. Na quarta coluna da grelha de estrutura da consulta, introduza a seguinte expressão na caixa Campo e efectue as selecções seguintes nas caixas Total, Ordenar e Mostrar:
       Campo: FData: Formatar([DataEncomenda],"mmm")
       Total: Agrupar por
       Ordenar: Ascendente
       Mostrar: Sim
    						
    A expressão existente na caixa Campo apresenta ecada mês num formato de texto (tal como Jan, Fev, Mar, etc.).
  8. Na quinta coluna da grelha de estrutura da consulta, introduza a seguinte expressão na caixa Campo e efectue as selecções seguintes nas caixas Total, Critérios e Mostrar:
       Campo: PartData("aaaa",[DataEncomenda])
       Total: Onde
       Critérios: 1997
       Mostrar: Não
    						
    A expressão existente na caixa Campo filtra o conjunto de registos da consulta de modo a incluir apenas dados de 1997.
  9. Execute a consulta. Note que o campo TotParc apresenta os registos seguintes com uma soma parcial:
       AAno     AMês       TotParc      FData
       --------------------------------------
       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 utiliza uma consulta de totais com uma função DSoma() para criar um total parcial ao longo de um grupo.

A consulta de exemplo seguinte utiliza a tabela Encomendas para somar os custos de transporte por empregado, bem como para calcular uma soma parcial do transporte. Para criar e executar a consulta, siga estes passos:
  1. Abra a base de dados de exemplo Adamastor.mdb.
  2. Crie uma nova consulta seleccionar e adicione a tabela Encomendas.
  3. No menu Ver, clique em Totais.

    Nota No Microsoft Office Access 2007, clique em Totais no grupo Mostrar/Ocultar do separador Estrutura.
  4. Na primeira coluna da grelha de estrutura da consulta, adicione o seguinte campo na caixa Campo e efectue as selecções seguintes nas caixas Total e Mostrar:
       Campo: AliasEmp: IDEmpregado
       Total: Agrupar por
       Mostrar: Sim
    						
    Este campo agrupa dados por IDEmpregado.
  5. Na segunda coluna da grelha de estrutura da consulta, adicione o seguinte campo na caixa Campo e efectue as selecções seguintes nas caixas Total e Mostrar.
       Campo: Transporte
       Total: Soma
       Mostrar: Sim
    						
    Este campo soma os dados do transporte.
  6. Na terceira coluna da grelha de estrutura da consulta, introduza a seguinte expressão na caixa Campo e efectue as selecções seguintes nas caixas Total e Mostrar.

    NOTA: No exemplo seguinte, um carácter de sublinhado (_) no final de uma linha é utilizado como um carácter de continuação de linha. Remova o carácter de sublinhado do final da linha quando recriar este exemplo.
       Campo: TotParc: Formatar(DSoma("Transporte","Encomendas","[IDEmpregado]<=" _
              & [AliasEmp] & ""),"0.000,00?")
       Total: Expressão
       Mostrar: Sim
    						
    A expressão existente na caixa Campo utiliza uma função DSoma() para somar o campo Transporte quando IDEmpregado é menor ou igual ao AliasEmp actual e, em seguida, formata o campo em Euros.
  7. Execute a consulta. Note que o campo TotParc apresenta os registos seguintes com uma soma parcial:
       Empregado             SomaTransporte   TotParc
       -------------------------------------------------
       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