Somar, contar e numerar em relatórios
Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito, através do Paypal.
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.
Basta indicar o campo que se pretende somar e a mágica é realizada.
=soma([nome do campo])
Exemplo de uma das Caixa de Texto do relatório exemplo.
A função Soma() não funciona com campos calculados
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:
=[quantidade] * [valor unitário]
Se utilizar a função sobre o campo calculado ValorEstoqueProduto irá retornar com um erro (#erro).
=Soma([ValorEstoqueProduto]) 'Retornará um erro (#erro)
Uma explicação mais detalhada você encontra na vídeo-aula deste meu artigo, que aborda somas em sub formulários.
O correto é utilizar o cálculo dentro da função Soma(), conforme abaixo:
=Soma(([quantidade]*[valor unitário]))
Somar em função de um crité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.
= iif(3=2;"Laranja";"Banana") :::> 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:
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))
Realizando contagens com a função Soma()
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.
Observe na imagem abaixo, as comparações feitas na janela de Verificação imediata do VBA e os resultados obtidos:
Como a comparação retorna um valor negativo, precisamos ajustar isso com a função abs(), que retira o sinal negativo do resultado.
Observe na imagem, os resultados obtidos com a função abs()
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)
[nota]=1 :::> true(-1) ou false(0)
Para eliminar o sinal de negativo, utilizamos a função abs()
abs([nota]=1) :::> retorna 1 se verdadeiro ou 0 se falso
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.
Contar total de registros
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(*)
Não utilize as funções de domínio Dsun() e Dcount()
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.
=Dsum("Nota";"NomeDatabela";"[nota]=1") 'Erro grosseiro de programação
Como Numerar
- Crie um campo.
- Abra a lista de propriedades deste campo e acesse a guia DADOS, conforme figura abaixo
- Acrescente o valor "=1" na propriedade Fonte de controle.
Altere a propriedade Soma parcial para: "Por Grupo" ou "Total". No nosso caso, como estamos numerando por operadora (grupo), foi escolhida "Por Grupo".
O resultado, você observa na imagem do relatório acima, com a numeração em vermelho.
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:
Acesse aqui o tutorial com a vídeo-aula.
Exemplo
Segue abaixo, o exemplo do relatório aqui exibido para você estudar e enfrentar o desafio proposto.
Bom estudo!
Os dez artigos mais visitados
MontaRibbons v.7.0 - Assistente completo para criar ribbons no Access
Vídeo - Controle personalizado de Acesso de Usuários
Vídeo - Aprenda sobre filtragens
Vídeo - Segurança máxima, usando o OPEN
Uma ajuda para quem está começando um negócio ou um projeto
Integrando o Access com Servidor MySQL - Introdução
Desabilitando a faixa(ribbon) superior do Access
Vídeo - Programação de relatórios - Parte 1
Como carregar o seu menu sem que ele vá para lista de suplementos
Vídeo - Criando Ribbons parte 1 - Conhecendo a estrutura Xml
67 comentários Pedro 17/12/2023 03:50:24 Avelino , eu preciso somar com critério de texto a duração de tempo de carga de um portão. Se o portão for igual a "A" , tire a média de tempo deste portão. Tentei dessa forma =média(seimed([Portao]='A';[Tempo];0)) , mas não ta somando corretamente, você sabe o que pode ser? MANOEL RODRIGUES DA SILVA FILHO 14/07/2023 17:47:15 Valeu muito bom.....show de bola Avelino Sampaio 11/06/2023 09:17:33 Heitor, experimente assim: =Soma(abs([Situação]='Liberado')) Sucesso! Heitor 11/06/2023 08:48:24 Eu estou tentando aplicar aqui esse conceito no formulário mas só dá #erro. Tenho uma Coluna Situação. Nela tem Liberado, Retido e Devolvido. Quero uma contagem para cada uma delas. Tentei várias vezes e só dá erro =Soma(SeImed(([Situação])=("Liberado");1;0)) Heitor 09/06/2023 05:09:49 Olá. Consegui contar, mas ele não deixa salvar, diz para remover do layout as células vázias. Virginia 10/04/2023 07:33:45 Obrigada pela dica de como numerar um relatório, salvou meu dia! Ricardo Lucio Costa 06/01/2023 05:30:35 Tenho um formulário com um subformulário dentro. Este subformulário é baseado em uma consulta onde, agrupei uma coluna e totalizei outra, ficando assim: Nome (agrupar por), Valor cobrado (soma). Neste subformulário o campo Valor cobrado aparece automaticamente assim: SomaDeValorCobrado No rodapé do subformário, criei um campo para totalizar, ficando assim: =Soma([SomaDeValorCobrado]), retornando #Erro Consegue me ajudar? rodrigoharo 27/11/2022 21:07:23 farei isso Avelino ;-) Agradeço Avelino Sampaio 27/11/2022 14:39:18 Rodrigo, se a intenção for apresentar apenas o resumo: 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 rodrigoharo 27/11/2022 14:24:03 Imaginem a seguinte tabela: Prateleira | Fruta | Quantidade | Quantidade Total P1 | Maçã | 10 | 30 P2 | Pera | 05 | 35 P3 | Manga | 08 | 24 P4 | Maçã | 20 | 30 P5 | Manga | 16 | 24 P6 | Pera | 30 | 35 Percebam que o ultimo campo está somando todas as preteleiras: Maçã: P1 + P4 = 30 Pera: P2 + P6 = 35 Manga: P3 + P5 = 24 No MS Excel a fórmula para esta solução seria: =SOMASE(intervalo;criterios;[intervalo_soma) Considerando (P1) como sendo A1 e (35) "ultimo valor da tabela" como sendo D6, a formula do excel acima ficaria como segue: =SOMASE($B$1:$C$6;B1;$C$1:$C$6) <---cifrão usado para travar o intervalo. 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 Morvan da Silva Jr 07/11/2022 10:28:12 Olá bom dia Sr. Avelino. Tentei esta nova fórmula e também não tive sucesso. Mas não parei por ai, pesquisei mais um pouquinho e consegui adquirir uma fórmula e ela funcionou. Exempo: =DSoma("ValorMoveis";"tbl_CaixaMoveis";"Year([DataLancamento])=2015") Se alguém precisar da fórmula, está ai! Obrigado pela ajuda e, gostaria de parabenizar pelo ótimo trabalho que vem realizando. Sucesso! Avelino Sampaio 06/11/2022 21:45:32 Marcio, experimente assim: =DSoma("ValorMoveis";"tbl_CaixaMoveis";"Year([NomeCampoData])=year(date()") No aguardo Marcio Morvan da Silva Jr 06/11/2022 17:10:24 Olá Sr. Avelino. A fórmula DSoma com o critério de filtragem deu #Erro Tentei até adicionar um parênteses depois de Data() mas não tive sucesso. Alguma sugestão!? Obrigado! Avelino Sampaio 06/11/2022 13:26:51 Marcio, inclua o critério de filtragem na função. Exemplo: =DSoma("ValorMoveis";"tbl_CaixaMoveis";"ano(NomeCampoData)=ano(data()") Sucesso! Marcio Morvan da Silva Jr 06/11/2022 11:35:13 Olá Sr. Avelino. Gostaria de tirar uma dúvida da função DSoma. Criei um relatório, e nele está somando a minha tabela de valores de lançamento. Exemplo da fórmula: =DSoma("ValorMoveis";"tbl_CaixaMoveis") Todos os lançamentos possui uma data. Agora gostaria que nesta soma, somasse somente os valores do ano de 2015. Obrigado. Avelino Sampaio 01/11/2022 09:29:49 Paulo, está faltando o sinal de igual na filtragem. Experimente: =Dsoma("ValorLanc";"Tbl_Lancamento";"tipo='RECEITA'") Se inscreva no nosso fórum: http://www.redeaccess.com.br No aguardo Paulo Luz 01/11/2022 08:57:58 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? Avelino Sampaio 31/08/2022 06:59:11 Medrado, vc pode utilizar a função Dlookup() para pegar o valor do produto no estoque. Algo assim: if Dlookup("Estoque","tblEstoque","idproduto = " & me!idProduto) < me!quantidadeSaida then 'aqui vc coloque o código que impede o lançamento exit sub end if Uma segunda opção: 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: if me!CbxProduto.column(1) < me!quantidadeSaida then 'aqui vc coloque o código que impede o lançamento exit sub end if Sucesso! Medrado Bahia 30/08/2022 15:55:14 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 Avelino Sampaio 02/08/2022 16:56:57 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 ADRIANO RODRIGUES 02/08/2022 16:48:45 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! GERALDO LUCIO AMBROSIO 30/07/2022 21:57:23 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. Silvenia Cardoso 28/07/2022 14:33:08 Legal Avelino Sampaio 22/06/2022 06:38:41 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? R: Use a função DateAdd(). Exemplo: dateadd("yyyy",2,#06/22/2015#) :::> retorna 22/06/2017 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. Nota: Leve suas dúvidas para o nosso novo fórum. http://www.redeaccess.com.br Carlos Henrique Ribeiro 21/06/2022 19:34:01 Boa noite! Avelino Estou com um problema na hora de somar data. A situação é a seguinte: 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?rs Ediney Faro 11/04/2022 10:01:57 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! Marcio 28/03/2022 10:09:41 Bom dia Avelino, 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 Avelino Sampaio 28/03/2022 06:16:19 Marcio, crie um campo na consulta, conforme linha abaixo: SaldoZero: [qtde entr] - [qtde saída] E no critério coloque: <> 0 A origem deste relatório tem que ser a consulta Sucesso! Marcio 27/03/2022 22:20:33 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. Campos da Tabela Movimentos: Cód; Data; CódFornecedor; CódProduto; Qtde Saída; Qtde Entr; NF Saida; NF Entrada; Doc Referência; R$ Un; Saldo 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. É possível desenvolver tal situação à partir da Consulta ou do Próprio Relatório?? Obrigado!! Marcelino 21/03/2022 01:17:57 Boa Noite, Avelino!!! 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: Nome (P)resente (F)alta Aluno 1 12 10 Aluno 2 5 19 Aluno 3 15 5 Aluno 4 7 15 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 Avelino Sampaio 19/02/2022 07:19:38 Jeronimo, no relatório vc cria uma agrupamento por mês em função da data registrada. Traga esta sua dúvida para o fórum do UsandoAccess: http://www.redeaccess.com.br Lá no fórum procure anexar um exemplo para podermos te ajudar mais rápido. Aguardamos jeronimo 17/02/2022 15:57:59 Pessoal estou com uma duvida se puderem me ajudar a gradeço. o acess me da varios registros em cada registro tenho um campo com valor de venda total do dia gostaria de fazer um soma dessas vendas de cada registro mensal ou por data que formula eu utilizo Vinicius Mota 05/02/2022 12:43:43 Cara Muito Obrigado baixei aqui deu certinho para colocar no meu relatório VLw Ricardo Lucio Costa 06/01/2022 05:30:19 Tenho um formulário com um subformulário dentro. Este subformulário é baseado em uma consulta onde, agrupei uma coluna e totalizei outra, ficando assim: Nome (agrupar por), Valor cobrado (soma). Neste subformulário o campo Valor cobrado aparece automaticamente assim: SomaDeValorCobrado No rodapé do subformário, criei um campo para totalizar, ficando assim: =Soma([SomaDeValorCobrado]), retornando #Erro Consegue me ajudar? Amilton 16/12/2021 19:35:48 Aqui deu Certo desta Maneira =Soma(SeImed((Int(DifData("d";[datanascimento];Data())/365,25))>40;1;0)) Simão Afonso 10/12/2021 10:03:11 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. Avelino Sampaio 09/12/2021 06:39:05 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! Avelino Sampaio 09/12/2021 06:35:50 Flecha, sim , pode trabalhar com campo do tipo texto. exemplo: =Soma(SeImed([Ref]="1";[Quantidade];0)) Se não funcionar, informe os valores que o campo REF costuma armazenar. Sucesso! Flecha 08/12/2021 13:49:29 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)) José de Souza Melo neto 06/12/2021 21:54:52 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 Glauco 06/12/2021 17:40:56 Olá Avelino, Correto, deu certo por aqui, vou estudar pelo tutorial agora. Abraços Avelino Sampaio 06/12/2021 16:25:44 Glauco, use o navegador Explorer para assistir o vídeo. Tente aplicar o que foi explicado neste tutorial. Exemplo, para contar a palavra "Aprovado": =Soma(abs([NomeDoCampo]="Aprovado")) Sucesso! Glauco 06/12/2021 15:58:43 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. Glauco 06/12/2021 15:54:19 Não estou conseguindo o vídeo da aula. Avelino Sampaio 05/12/2021 05:17:03 Sérgio, sugiro que assista a vídeo-aula sobre programação em relatórios que ofereço. Bom estudo! Rafael Zorzo de Oliveira 04/12/2021 23:14:48 Quero lhe parabenizá-lo pelo teu trabalho. Parabéns, a cada dia que passa aprendo muito. Valeu! Um forte abraço!!!! Flecha 04/12/2021 15:55:40 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. Picharski 04/12/2021 14:45:42 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. Sérgio Luis 04/12/2021 13:35:10 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??? ANTONIO 29/11/2021 12:00:57 Grande Avelino, bom dia, Preciso da sua ajuda. Eu tenho duas tabelas chamadas "Revisão" e "Distribuição", ambas contêm um campo chamado STATUS, porém apenas o campo da tabela "Revisão" está alimentado. Como farei para alimentar esse campo STATUS na tabela "Distribuição" com as mesmas informações da tabela Revisão? Pedro Lucas Cipollini Gomes 23/11/2021 09:58:25 Avelino , estou tentando acessar o tutorial da programação de relatórios, mas a mesma está dando erro. Você pode me mandar o link? Bartô 30/10/2021 17:07:26 Muito grato de poder ajudar. Estou desenvolvendo uma aplicação em access para controle de medição de subempreeiteiros. No relatório eu preciso fazer somas acumulativas. Tipo: Janeiro Valor R$ 100 Acumulado Até o período= 0 Fevereiro Valor R$ 200 Acumulado até o período: 300 Não estou nem sabendo explicar direito, mas se alguém poder ajudar, posso tentar melhorar o esbouço. Danedo 10/10/2021 16:58:35 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. Aldinete S. Gare 26/09/2021 11:00:45 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 hill gomes 29/08/2021 16:03:40 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 Ulisses 27/08/2021 14:18:47 Ó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!!! Wellington Rodrigues 29/04/2021 08:53:00 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" Avelino Sampaio 29/04/2021 08:51:53 Wellington, me forneça um exemplo (zipado) para eu poder te ajudar mais rápido. envie para : avelino(arroba)usandoaccess(ponto)com(ponto)br No aguardo Wellington Rodrigues 29/04/2021 08:45:24 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 Rodrigues 29/04/2021 08:42:42 Não, continua dando #erro. Avelino Sampaio 29/04/2021 08:27:29 Wellington, como teste , vc pode comparar com o código ASC correspondnete. Exemplo: =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 Wellington Rodrigues 29/04/2021 08:11:28 Prezando Avelino, bom dia! 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! Avelino Sampaio 03/01/2021 12:27:16 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! Bom dia!!! 03/01/2021 10:32:38 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. Antonio Costeira 22/04/2020 11:15:39 Você é 10 mesmo, parabéns pelo talento Avelino. Posso continuar a usar esse canal como um tira dúvidas ? Avelino Sampaio 22/04/2020 11:08:11 Antonio Se a tabela não estiver acoplada a origem do formulário, vc terá que usar a função DCount(). =Dcount (" * "; " t_dados_pessoais ") Sucesso" Antonio Costeira 22/04/2020 10:41:13 Boa tarde Avelino, como faço pra contar o número de registros de uma tabela (t_dados_funcionais) do campo (Nº), tentei essa expressão =contar([t_dados_pessoais]![Nº]), mas só dá erro. |