Beruflich Dokumente
Kultur Dokumente
Usando Access
Home Vídeos Tutoriais Dicas Ribbons Suporte Downloads Contato Artigo
Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos
apresentados abaixo. Você pode comprar em até 10x no Cartão de Crédito.
Veja como comprar e saiba mais sobre o material oferecido, clicando aqui.
Somar, contar e numerar se tornarão tarefas fáceis, depois que você assimilar as técnicas aqui
apresentadas.
Ao final deste tutorial, você passará a entender porque o Access está entre os melhores softwares do
mundo, no que diz respeito a criação de relatórios.
A função Soma()
Esta função é de uma praticidade incrível. É aplicada na propriedade Fonte de Controle das Caixas de
Texto, posicionadas em cabeçalhos e rodapés.
=soma([nome do campo])
1 of 15 23/06/2020 16:03
Somar, contar e numerar em relatórios https://www.usandoaccess.com.br/tutoriais/somar-contar-e-numerar-em-r...
Esta função não funciona com campos calculados. Vamos supor que você tenha um campo calculado
de nome ValorEstoqueProduto e que este campo mostre o cálculo entre os campos quantidade e valor
unitário. Exemplo:
Se utilizar a função sobre o campo calculado ValorEstoqueProduto irá retornar com um erro (#erro).
Uma explicação mais detalhada você encontra na vídeo-aula deste meu artigo, que aborda somas em
sub formulários.
=Soma(([quantidade]*[valor unitário]))
É muito comum precisarmos somar valores de um campo, que siga um determinado critério. Por
exemplo, observe no relatório abaixo, o campo que mostra o Total Cobrado dos clientes que avaliaram
a empresa com Notas de 1 a 5.
Como foi possível somar o campo ValorCobrado, somente dos clientes que deram notas de 1 a 5 ?
Utilizando uma outra função que é muito empregada: a iiF(condição, verdadeira, falsa).
Esta função retorna dois valores possíveis, dependendo do resultado do argumento condição. Exemplo:
Ao perguntar a função se 3=2, teremos como resposta a condição Falsa. Sendo a condição Falsa, a
função irá retornar com o valor do argumento falso que é Banana.
Outro exemplo: ao perguntar a função se 3=3 , teremos como resposta a condição Verdadeira.
Sendo a condição Verdadeira, a função irá retornar com o valor 25.
=iif(3=3;25;0) :::> 25
Você pode realizar testes com esta função, na janela de Verificação Imediata do VBA. Veja na imagem
abaixo, os resultados com os valores acima:
2 of 15 23/06/2020 16:03
Somar, contar e numerar em relatórios https://www.usandoaccess.com.br/tutoriais/somar-contar-e-numerar-em-r...
Para o nosso caso, em particular do relatório, precisamos somar os valores somente se a nota for
inferior a 6. Montamos a função iif() desta forma:
=iif([nota]<6;[ValorCobrado];0)
Para todo valor inferior a 6, a função retornará o valor do campo [ValorCobrado] e para todo o valor
acima de 5, a função retornará o valor zero(0).
Basta agora acrescentar a função Soma() para somar os valores do campo [ValorCobrado] mais os
zeros(0) quando não satisfazer à condição.
=Soma(iif([nota]<6;[ValorCobrado];0))
Para o campo que recebe a soma do Valores Cobrados para os clientes que deram notas superiores a
5, teremos a seguinte função:
=soma(iif([nota]>5;[ValorCobrado];0))
A princípio, a idéia de usar a soma para contar, causa certa estranheza, porém é de uma solução
brilhante. Veja:
Imagine que temos uma seqüência de três números Um (1) para somar: (1+1+1). O resultado da
soma equivale a contagem de três itens.
Imagine agora, que temos uma seqüência de Zeros e Uns para somar: (1+0+1+0), na qual, os zeros
representam itens não existentes. Desta forma, o resultado da soma equivale a contagem de 2 itens
presentes.
É importante destacar que ao realizarmos perguntas ao VBA, obteremos como resposta o valor
Verdadeiro(true) ou Falso(false). Os valores true e false, na verdade são números, aonde -1
representa o true e 0 (zero) representa o false.
Ao perguntarmos ao VBA se 3=2, teremos como retorno o valor 0(zero) e ao perguntarmos se 3=3,
teremos como retorno o valor -1.
Como a comparação retorna um valor negativo, precisamos ajustar isso com a função abs(), que retira
o sinal negativo do resultado.
3 of 15 23/06/2020 16:03
Somar, contar e numerar em relatórios https://www.usandoaccess.com.br/tutoriais/somar-contar-e-numerar-em-r...
Verifique na imagem do relatório que temos um quadro de contagem de notas dadas pelos clientes.
Vamos nos ater como foi montada a função para contagem da Nota 1.
Perguntamos ao VBA se o campo nota recebeu o valor 1. Obtemos como resposta true (-1) ou false(0)
Agora que temos uma seqüência de Zeros e Uns (1,0,0,1,1,0), pedimos para somar esta seqüência e
assim, obtemos a contagem desejada.
=Soma(abs([nota]=1))
Outro exemplo: observe no relatório que temos um campo que informa quantos clientes pretendem
renovar o contrato. Para isso bastou seguir a mesma fórmula que realiza a contagem de Zeros e
Uns(1) que a função ABS() nos fornece.
=Soma(abs([renovar]=true))
Desafio
No relatório exemplo fornecido tem um campo que exibe a contagem de clientes com idades acima de
40 anos. Tente aplicar o que aprendeu aqui para obter o resultado desta contagem.
A função Count(*) nos fornece o total de registros. Esta função foi utilizada na Caixa de Texto que
representa o Total de Clientes.
=count(*)
Usar funções de domínio para somar e contar valores existentes no relatório é um erro grosseiro de
programação, pois você estará contribuindo para baixar o desempenho do seu aplicativo. A razão disso
é que estas funções necessitam realizar viagens à tabela para obter os dados. Viagens essas
totalmente desnecessárias, pois os dados do relatório podem ser manipulados facilmente pelas
funções Soma() e Conta() , como visto aqui neste tutorial.
Como Numerar
- Crie um campo.
- Abra a lista de propriedades deste campo e acesse a guia DADOS, conforme figura abaixo
Altere a propriedade Soma parcial para: "Por Grupo" ou "Total". No nosso caso, como estamos
numerando por operadora (grupo), foi escolhida "Por Grupo".
4 of 15 23/06/2020 16:03
Somar, contar e numerar em relatórios https://www.usandoaccess.com.br/tutoriais/somar-contar-e-numerar-em-r...
Programação em relatórios
Se o seu objetivo é tornar-se um profissional na programação com Access, não pode deixar de assistir
a vídeo-aula sobre programação em relatórios, no link abaixo:
Exemplo
Segue abaixo, o exemplo do relatório aqui exibido para você estudar e enfrentar o desafio proposto.
RelatorioSomarContar.zip
Bom estudo!
Como carregar o seu menu sem que ele vá para lista de suplementos
63 comentários
Antonio
Se a tabela não estiver acoplada a origem do formulário, vc terá que usar a função DCount().
Sucesso"
Boa tarde Avelino, como faço pra contar o número de registros de uma tabela (t_dados_funcionais) do campo (Nº), tentei essa
5 of 15 23/06/2020 16:03
Somar, contar e numerar em relatórios https://www.usandoaccess.com.br/tutoriais/somar-contar-e-numerar-em-r...
Heitor,
experimente assim:
=Soma(abs([Situação]='Liberado'))
Sucesso!
=Soma(SeImed(([Situação])=("Liberado");1;0))
Olá.
Consegui contar, mas ele não deixa salvar, diz para remover do layout as células vázias.
Paulo,
=Dsoma("ValorLanc";"Tbl_Lancamento";"tipo='RECEITA'")
http://www.redeaccess.com.br
No aguardo
Bom dia! estou tentando colocar um criterio de soma e esta dando #erro, no meu formulario tenho 03 campos onde tem Total
Desp, Total Rec, e Total Final, usei a expressão...=Dsoma("ValorLanc";"Tbl_Lancamento") ele soma, porem tudo, mas quando
coloco o critério para ele somar apenas as receitas (=Dsoma("ValorLanc";"Tbl_Lancamento";"[tipo]'RECEITA'"), no caso, Tipo
seria a coluna onde existem os valores (Despesas e Receitas) ai vem com #erro... Alguem poderia me ajudar?
Adriano,
leve a sua dúvida para o fórum do UsandoAccess. Vai ficar mais fácil de te ajudar:
http://www.redeaccess.com.br
Aguardamos
6 of 15 23/06/2020 16:03
Somar, contar e numerar em relatórios https://www.usandoaccess.com.br/tutoriais/somar-contar-e-numerar-em-r...
Boa tarde galera! por favor me ajudem! estou tentando efetuar a soma de valores que possuem entradas diferentes no banco
de dados pois no mesmo campo, que tem o nome de TIPO (para especificar o tipo de operação) tenho as seguintes entradas
pela lista de opções que fiz na folha de dados: "dízimos";"ofertas";"saídas".
na hora de fazer uma consulta que tenha os valores totais das entradas, onde tem que ser somado os valores dos dízimos e
ofertas, não sei qual formula utilizar. alguém pode me ajudar?
Obrigado!
Gostei muito. Pena que não consigo aplicar esses códigos pra aquilo que quero fazer, sempre o computador dá uma mensagem
de erro. Mas vocês são nota 10.
Tenho a necessidade de contar a seguinte situação baseadas nos critérios (P) e (F) mas não estou conseguindo:
Nome, frequência
Cada nome repete na tabela várias vezes, assim como a frequência que pode ser "P" ou "F", quero contar a quantidade da
frequência tanto se for "F" ou "P" referente a cada nome em um relatório onde os nomes não se repitam e sejam mostrados
todos conforme as respectivas frequências, conforme segue:
já usei a fórmula abaixo sem sucesso, as vezes conta todos os registros ou as vezes não, poderia me dar uma luz
=DContar("[Nome]";"tabela1consulta";"[frequencia] = 'p'") :::> conta o total dentro do critério na tabela mas quero o total do
critério conforme o nome
Att. Marcelino
Jeronimo,
http://www.redeaccess.com.br
Aguardamos
Cara Muito Obrigado baixei aqui deu certinho para colocar no meu relatório VLw
Rodrigo,
7 of 15 23/06/2020 16:03
Somar, contar e numerar em relatórios https://www.usandoaccess.com.br/tutoriais/somar-contar-e-numerar-em-r...
Maça = 30
Pera = 35
Manga = 24
Vc pode construir uma consultar AGRUPAMENTO que é bem simples. Se desejar mais detalhes, se inscreva no meu fórum
http://www.redeaccess.com.br que te ofereço mais detalhes.
No aguardo
P1 | Maçã | 10 | 30
P2 | Pera | 05 | 35
P3 | Manga | 08 | 24
P4 | Maçã | 20 | 30
P5 | Manga | 16 | 24
P6 | Pera | 30 | 35
Maçã: P1 + P4 = 30
Pera: P2 + P6 = 35
Manga: P3 + P5 = 24
Considerando (P1) como sendo A1 e (35) "ultimo valor da tabela" como sendo D6, a formula do excel acima ficaria como
segue:
Agora no Access? Como fazemos isso? Eis a grande questão Very Happy
Alguém se habilita em nos dizer qual a fórmula que podemos usar no textbox?
Um abraço à todos.
Marcio,
experimente assim:
=DSoma("ValorMoveis";"tbl_CaixaMoveis";"Year([NomeCampoData])=year(date()")
No aguardo
Marcio,
8 of 15 23/06/2020 16:03
Somar, contar e numerar em relatórios https://www.usandoaccess.com.br/tutoriais/somar-contar-e-numerar-em-r...
=DSoma("ValorMoveis";"tbl_CaixaMoveis";"ano(NomeCampoData)=ano(data()")
Sucesso!
Medrado,
vc pode utilizar a função Dlookup() para pegar o valor do produto no estoque. Algo assim:
Se vc usa uma combobox para listar o produto, pode acrescentar uma coluna nesta combobox trazendo o valor do estoque.
Basta então no eveto:
Sucesso!
Como impedir que controle de estoque aceite um valor maior do que tem no estoque. Ex: tenho 10 unid. quantidade de saída
12 unid, quero que o alarme seja dado imediatamente avisando que o estoque for inferior a quant. solicitada, impedido a
operação.
agradeço imsamente a quem me ajudar
Legal
Carlos,
1ª Dúvida: uma determinada data, somada a um determinado número inteiro de anos, deve dar como resultado uma data
acrescida do número de anos. Como posso resolver este imbróglio?
2ª Dúvida: Em uma tabela inseri valores de um determinado serviço, quando criei o formulário para realizar os lançamentos
destes valores (que estão vinculados à tabela) percebi que o valor que foi digitado na tabela como R$ 1,00, aparece no
formulário como R$ 1000,00. Onde será que errei?
R: Provavelmente está errado o tipo de número criado para o campo. Verifique se em ambos os campos (tabela e formulário)
vc especificou como do tipo MOEDA.
http://www.redeaccess.com.br
9 of 15 23/06/2020 16:03
Somar, contar e numerar em relatórios https://www.usandoaccess.com.br/tutoriais/somar-contar-e-numerar-em-r...
Meu amigo, você salvou minha pele, tinha que entregar um relatório aqui e não sabia como fazer esse cálculo. Muito obrigado
mesmo!
Não funcionou, quando filtro os produtos por fornecedor em meu relatório continua saindo o extrato dos produtos que estão
com saldo Zero. Na tabela abaixo o fornecedor 5 já me devolveu todos os produtos que consignou, desta forma quando eu tirar
meu relatório por fornecedores deveria aparecer apenas o extrato do fornecedor 2:
CódProduto; Qtde Saída; Qtde Entr; NF Saída; NF Entr; Doc Ref.; R$ Un; R$ Total;Saldo; Cliente
1670.16 4 0 10473 0 0 10 0 2
1670.16 0 1 0 104731 10473 10 0 2
1670.16 0 1 0 104731 10473 10 0 2
1670.16 3 0 10475 0 0 10 0 5
1670.16 2 0 10476 0 0 12 0 2
1670.16 0 2 0 104731 10473 10 0 5
1670.16 0 1 10475 104751 10475 12 0 5
Marcio,
E no critério coloque:
<> 0
Sucesso!
Boa noite,
Tenho uma tabela de Controle de Produtos em Poder de Terceiros (consignação) e preciso criar um relatório que me mostre
apenas os produtos que ainda faltam voltar para a empresa.
Criei um relatório com onde inseri na caixa de texto "Saldo" a seguinte fórmula: =Soma([Qtde Entr])-Soma([QTDE SAÍDA]). O
cálculo está perfeito só que aparece todo os produtos, tanto os que ainda tem saldo pra voltar quanto os que já voltaram
integralmente para a empresa, ou seja, que estão na condição de "Saldo Zero".
Quando a quantidade de entradas for igual a quantidade de saídas (Saldo Zero) quero que esses produtos não apareçam mais
em meu relatório, ficando apenas aqueles que ainda tem quantidades a retornar para a empresa.
Obrigado!!
10 of 15 23/06/2020 16:03
Somar, contar e numerar em relatórios https://www.usandoaccess.com.br/tutoriais/somar-contar-e-numerar-em-r...
ola Avelino como posso resolver esta calculo em um campo chamado bdi em um formulário
BDI=[Material]+[valor]+[valorel]+[valorp]+[Valorpintor]+[Valorf]+[Valorm]*21,35/100
Não estou nem sabendo explicar direito, mas se alguém poder ajudar, posso tentar melhorar o esbouço.
Estou tentando fazer um controle de estoque, com os itens ENTRADA, SAIDA, SALDO, COTAMIN e ESTOQUE, como faço para
sempre que SALDO ficar menor que COTAMIN, informar COMPRAR ou pegar o SALDO E DIMINUIR DA COTAMIN, consegui no
excel, mais não consigo transferir para o access.
Agradeço quem puder me ajudar.
Estou tentando fazer uma soma simples no access 2010 (anexo), já fiz várias tentativa e nenhuma da certo. O resultado que
preciso é o total que o cliente já pagou ex;
o cliente deu entrada e vai pagar o restante em 9 pagamentos (cheques pré datados)
Cada cheque que é compensado eu anoto no mês correspondente e quando faço a consulta preciso saber quanto já foi pago.
*Enviei um e-mail com o exemplo.
Desde já agradeço
Ótima matéria, trabalho numa empresa e precisei realizar este procedimento, mais não sabia como e graças a esta matéria
consegui sanar a minha dúvida e meu problema.
Valeu!!!
Abaixo parte do código que passa o valor da letra para tx1. Derrepente pode ser ai que está o problema...
Case 8
sqrl = "Select registro, nome, linha, turno, mdo, LETRA, ute, cargo FROM tblMdofolga WHERE ((tblMdofolga.LETRA)= 'I') Or
((tblMdofolga.LETRA)= 'C') Or ((tblMdofolga.LETRA)= 'D') ORDER BY tblMdofolga.LETRA;"
tx1 = "I"
tx2 = "D"
tx3 = "C"
11 of 15 23/06/2020 16:03
Somar, contar e numerar em relatórios https://www.usandoaccess.com.br/tutoriais/somar-contar-e-numerar-em-r...
Wellington,
No aguardo
Quando eu coloco uma letra no lugar de tx1 que a caixa de texto que amarzena a letra, o código funciona sem problemas...
quando volto para tx1 ele dar #erro... Não sei o que fazer.
Wellington,
=Soma(Abs([UTE]=6101*Abs(asc([Letra])=asc([tx1]))))
O problema neste caso é que "A" será diferente de "a". Bom, experimente com o ASC e veja se atende.
No aguardo
O código abaixo não está funcionando como desejo... você tem alguma solução?
=Soma(Abs([UTE]=6101*Abs([Letra]=[tx1])))
tx1 é uma caixa de texto que recebe uma letra (A, B, C...), o resultado sem aparece como falso e como consequência a soma
sempre retorna 0. O que estou fazendo de errado? Já tentei ' tx1' e nada... Essa tá dificil! Fico no aguardo, Obrigado!
Bom dia,
vc pode montar o relatório, agrupando por cliente. Use o assistente do Access para auxiliá-lo na montagem. Use então o
rodapé do grupo cliente para realizar a soma por cliente.
Sucesso!
Gostaria de somar os valores de compras de um mesmo cliente, ou seja na consulta de compras realizadas durante um ano, o
nome se repete, juntamente com os valores de compras... gostaria de uma fórmula para somar todas as compras durante o
ano... fico no aguardo.
Muito Obrigado Avelino! Tu és um Salvador ou seja tapador de lacunas. Suas aulas têm me ajudado muito a pôr em prática
todas noções básicas do Access. Tens mostrado exemplos que nunca apareceram em livro nenhum.
A minha dúvida é a seguinte: eu fiz um sistema que gera cartões de estudantes e no momento de imprimir não consigo
imprimir o cartão seleccionado. tentei fazer isso através de um código no VBA e funciona por uns instantes mas depois deixa de
imprimir ou seja o Botão Imprimir perde a acção. tu pressionas e não acontece nada.
José De Souza,
acredito que resolverá fácil se assistir a vídeo-aula sobre programação em relatórios, que ofereço aqui no artigo.
Bom estudo!
12 of 15 23/06/2020 16:03
Somar, contar e numerar em relatórios https://www.usandoaccess.com.br/tutoriais/somar-contar-e-numerar-em-r...
Flecha,
exemplo:
=Soma(SeImed([Ref]="1";[Quantidade];0))
Sucesso!
Grande Mestre,
Usei seu exemplo e apliquei em meu relatório, só que para funcionar tive que alterar o tipo do campo Ref na linha abaibo para
Número e funcionou o relatório com as somas, porém afetou um Formulário aparecendo erro em uma expressão. Será que
pode trabalhar com campo texto a linha abaixo onde esta ocampo [Ref] para usar nas somas dos relatórios ?
=Soma(SeImed([Ref]=1;[Quantidade];0))
Boa Sacada Avelino! Adorei. Mas tenho um problema com uma escala de plantão que criei. Tenho campos nomeados de: 1 a
31 os quais são digitados variáveis do tipo texto onde são atribuidos os valores das horas para cada uma. Ex.: D = 12h; P = 24
h; t = 6 h; M = 6 h; N = 12 h. O problema é que eu gostaria do valor calculado no campo "CH Total" destas variáveis em cada
linha de registro. Por exemplo: Se no primeiro registro o campo 1 = D; Campo 2 = p; Campo 3 = T; Campo 4 = M; Campo 5 =
N...; O campo "CH Total" para este registro me retornar, respectivamente, o valor de: 12 + 24 + 6 + 6 + 12 = 60 h. Será que
o amigo professor poderia me dar uma luz???
Agradeço a atenção
Souza Neto
E-mail: josenetorn@hotmail.com
Fone: (84) 9975-0930
Olá Avelino,
Correto, deu certo por aqui, vou estudar pelo tutorial agora.
Abraços
Glauco,
Tente aplicar o que foi explicado neste tutorial. Exemplo, para contar a palavra "Aprovado":
=Soma(abs([NomeDoCampo]="Aprovado"))
Sucesso!
Acho que minha dúvida é bem simples, tenho um campo com palavras e preciso somar quantas vezes cada palavra apareceu
em um mesmo relatório, as palavras são: aprovado, reprovado, revalidado e encaminhado.
Abraços.
13 of 15 23/06/2020 16:03
Somar, contar e numerar em relatórios https://www.usandoaccess.com.br/tutoriais/somar-contar-e-numerar-em-r...
Sérgio,
Bom estudo!
Muito legal,
Apanhei um pouco mas consegui resolver o desafio com > que 40 e >= 40.
Mas confesso que de cara já cometi o erro comum!
Gosto muito dos seus desafios, o de numerar itens já tinha visto em um livro e uso bastante em meus relatórios.
Devo admitir que essa eu não sabia. Avelino, você me arrancou um sorriso... Essa de usar soma para contar foi fantástica.
Obrigado por essa dica fenomenal.
Um grande abraço.
Muito bom, gostei. Agora uma dúvida de como fazer estes relatórios com data. Vamos supor que eu tenho uma base de dados
com códigos de planos de saúde. Para cada faixa de idade é um código diferente. Exemplo: Plano-1 De 0 a 18 anos R$ 100,00,
Plano-2 de 19 a 50 anos R$ 200,00 e assim por diante. Como faço para que no mês que a idade do usuário mude de plano, o
valor seja alterado no relatório. Exemplo: João tem 18 anos até março de 2013, em abril, dia 28 ele fará 19 anos, daí, no mês
de março terá que alterar a categoria do Plano para outro valor. Como faço para ajustar as somas aos novos valores que vem
de outro bco de dados???
Nome:
Comentário:
comentar
14 of 15 23/06/2020 16:03
Somar, contar e numerar em relatórios https://www.usandoaccess.com.br/tutoriais/somar-contar-e-numerar-em-r...
15 of 15 23/06/2020 16:03