bollywood actresses hair loss hair rehab london contact number cheap hair extensions brazilian curly hair with closure hair extension fails human hair wigs black ponytail hairstyles 2018 sunny hair extensions uk hair extensions remy hair extensions weft koko one piece hair extensions clip hair
Somar, contar e numerar em relatórios

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é 2x no Cartão de Crédito, através do Paypal. 

Veja como comprar e saiba mais sobre o material oferecido,  clicando aqui.

Open v3

 

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.

Usando Access - Soma em relatórios

 

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.

Usando Access - Soma em relatórios

 

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:

Usando Access - função iif()

 

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:

Usando Access - Vericação Imediata

 

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()

Usando Access - 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".

Usando Access - Numerar relatório

 

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!


 

 


67 comentários

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?

Pedro   17/12/2022 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?

Ricardo Lucio Costa   06/01/2021 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?

Pedro Lucas Cipollini Gomes   23/11/2020 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?

Antonio Costeira   22/04/2019 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/2019 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/2019 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.

MANOEL RODRIGUES DA SILVA FILHO   14/07/2018 17:47:15

Valeu muito bom.....show de bola

Avelino Sampaio   11/06/2018 09:17:33

Heitor,

experimente assim:

=Soma(abs([Situação]='Liberado'))

Sucesso!

Heitor   11/06/2018 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/2018 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/2018 07:33:45

Obrigada pela dica de como numerar um relatório, salvou meu dia!

Avelino Sampaio   01/11/2016 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/2016 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   02/08/2016 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/2016 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/2016 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.

Marcelino   21/03/2016 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/2016 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/2016 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/2016 12:43:43

Cara Muito Obrigado baixei aqui deu certinho para colocar no meu relatório VLw

rodrigoharo   27/11/2015 21:07:23

farei isso Avelino ;-)
Agradeço

Avelino Sampaio   27/11/2015 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/2015 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/2015 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/2015 21:45:32

Marcio,

experimente assim:

=DSoma("ValorMoveis";"tbl_CaixaMoveis";"Year([NomeCampoData])=year(date()")

No aguardo

Marcio Morvan da Silva Jr   06/11/2015 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/2015 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/2015 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   31/08/2015 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/2015 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

Silvenia Cardoso   28/07/2015 14:33:08

Legal

Avelino Sampaio   22/06/2015 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/2015 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/2015 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/2015 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/2015 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/2015 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!!

ANTONIO   29/11/2014 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?



hill gomes   29/08/2014 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

Amilton   16/12/2013 19:35:48

Aqui deu Certo desta Maneira
=Soma(SeImed((Int(DifData("d";[datanascimento];Data())/365,25))>40;1;0))

Bartô   30/10/2013 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/2013 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/2013 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

Ulisses   27/08/2013 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/2013 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/2013 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/2013 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/2013 08:42:42

Não, continua dando #erro.

Avelino Sampaio   29/04/2013 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/2013 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/2013 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/2013 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.

Simão Afonso   10/12/2012 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/2012 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/2012 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/2012 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/2012 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/2012 17:40:56

Olá Avelino,

Correto, deu certo por aqui, vou estudar pelo tutorial agora.

Abraços

Avelino Sampaio   06/12/2012 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/2012 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/2012 15:54:19

Não estou conseguindo o vídeo da aula.

Avelino Sampaio   05/12/2012 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/2012 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/2012 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/2012 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/2012 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???


Envie seu comentário: