... Assinatura do site por 3 anos + Kit MontaRibbons + 3 Livros em PDF + Diversas Revistas (pdf) de brinde, por apenas R$145,00
(
podendo parcelar em até 10 vezes no cartão de crédito)...

Clique aqui e obtenha mais detalhes do nosso kit completo e de como comprar.


Como exibir valor total de um sub formulário, no formulário principal ?

A técnica empregada para exibir o valor total de um sub formulário, no formulário principal, é relativamente simples, porém existem situações que induzem a erros e que são difíceis de serem interpretadas e compreendidas.  Contudo, não serão mais problemas, depois que você assistir a vídeo-aula deste artigo!

Observe na figura, os campos do formulário principal, exibindo a soma do campo Valor Total  e a contagem de itens do sub formulário:

Exibir valores de sub formulário

 

As tarefas de somar e contar fica por conta do próprio sub formulário.  Veja, abaixo, o sub formulário sendo aberto por fora do formulário principal:

Soma em rodapé de sub formulário

 

Observou que temos o resultado da soma e da contagem de itens no rodapé ? 

Agora, veja o sub formulário no modo designer e os campos no rodapé:

Campos em Rodapé de sub formulário

 

O nome do campo que recebe a contagem de itens chama-se TotalItens e o que recebe a soma, ValorTotalPedido.  Usamos a propriedade Fonte de Controle dos campos para inserir as funções.

Para o campo TotalItens, usamos a função Contar():

=Contar([idItem])

Para o campo ValorTotalPedido, usamos a função Soma():

=Soma([valorTotal])

E por fim, basta passarmos para aos campos do formulário principal, os valores dos campos, já calculados no rodapé do sub formulário.

Capturando valores de um sub formulário

 

O campo que mostra a contagem de itens tem a seguinte referência, escrita na propriedade Fonte de Controle:

=Filho8!TotalItens

Filho8 é o nome do campo sub formulário, do formulário principal.

O campo que mostra a soma do Valor Total dos itens tem a seguinte referência, escrita na propriedade Fonte de Controle:

=filho8!ValorTotalPedido

Arquivo Exemlo

Sobre o Vídeo

Nesta vídeo-aula irei apresentar os erros comuns que acontecem na prática e que são facilmente resolvidos e que inclusive podem ser evitados.


 

Faça o login aqui para ter acesso ao vídeo.


Sucesso!


 

 


27 comentários

Marcelo David   08/02/2012 19:41:48

Muito bom! Parabéns Avelino!!

Anderson   09/02/2012 12:05:05

Caso não queira usar campo mestre e campo filho (eu acho que fica mais lento) va no sub-formulario na consulta coloque no campo na linha criterio = forms!principal!nomedocampo. No formulario principal no campo do filtro na opção apos atualizar coloque a expressão: me.sub_formulario.requery. No formulario principal caso queira trazer algum falor do sub-formulario coloque no campo do formulario principal: me.nomedocampo = forms("principal").controls("nomedosubformulario).nomedocampodosubformulario.

Anderson   09/02/2012 12:18:00

soma de saldo anterior: simples e rapido(vba)
Dim SQL As String
Dim Bd As Database
Dim RST As Recordset
Set Bd = CurrentDb

SQL = "SELECT" & " SUM (nomedocampo)" & " AS [soma] FROM nomedatabela" & " WHERE tabela.campo=" & criticanumerica & " tabela.campo<='" & criticatexto & "'" & "AND nomedatabela.campo<=#" & Format(DateSerial(Year(data), Month(data), day(data), "MM/DD/YYYY") & "#"

Set RST = Bd.OpenRecordset(SQL)
me.saldoanterior = RST!soma
RST.Close: Bd.close
soma dentro do mes: só troca a SQL
SQL = "SELECT" & " SUM (nomedocampo)" & " AS [soma] FROM nomedatabela" & " WHERE tabela.campo=" & criticanumerica & " tabela.campo<='" & criticatexto & "'" & "AND nomedatabela.campo<=#"" AND tabela.campo Between#" & Format(DateSerial(Year(data), Month(data) + 1, 1), "MM/DD/YYYY") & "#" & " AND #" & Format(DateSerial(Year(data), Month(Forms!data) + 2, 0), "MM/DD/YYYY") & "#"

Anderson Luiz   09/02/2012 20:39:32

Grande Avelino! Aqui é o IOB do Access. Informações objetivas. Excelente!

ANDERSON MUNHOZ MADEIRA   12/04/2012 17:11:48

Olá boa tarde,

Segui todos os passos, mas esbarro sempre neste erro, no campo do formulário principal: #Nome?.

Tem alguma dica

Avelino Sampaio   12/04/2012 17:19:31

Anderson,

vc assistiu a vídeo-aula ? A sua resposta provavelmente está na vídeo-aula.

Como vc está escrevendo a chamada ?

Ricardo Nunes   15/08/2012 14:34:32

Avelino,
Quando tem que calcular através do back end funciona também?

Avelino Sampaio   16/08/2012 06:27:18

Ricardo,

não entendi bem a sua pergunta. Você chegou a assistir o vídeo ? No vídeo eu demonstro como criar campo calculado, direto na consulta, para então ser usado no formulário.

No aguardo

Suporte_eficaz   26/09/2012 21:39:50

Caro, Avelino. Parabéns pelo site, mas informo que nao conseguir visualizar o vídeo nao, quanto menos o link do mesmo. Tentei com 2 navegadores e nao achei esta video-aula em questão. Já conseguir ver outras video-aulas suas, mas nao esta ai, neste caso, deste tópico ou assunto. Verifique por gentileza, se o mesmo encontra realmente disponível.

Avelino Sampaio   03/10/2012 07:15:46

Suporte_eficaz,

realizei vários testes e não identifiquei a possivel causa. Todas as minha máquinas rodam direitinho o vídeo. Só não pude testar com o Windows XP, poi não uso mais.

Vá na seção contato do site e me passe o seu email.

No aguardo


Mais uma vez!!   26/10/2012 15:12:07

Avelino, mais uma vez um tutorial seu me salvou! O mais intrigante é que quando estamso de cabeça quente, não conseguimos enxergar uma solução óbvia, já fiz o que passou no tutorial, porém com a cuca fervendo, me esqueci, grande abraço.
Leandro

Egnaldo   17/11/2012 17:56:37

Oi Avelino tudo bem, em primeiro lugar você esta de parabéns pelo site.
Uma pequena Duvida tenho um formulário com um sub, idêntico a esse do seu exemplo, funciona tudo normal, e esta vinculado a idPedido, mas quando não possui registro no sub retorna no campo Valor Total Do Pedido "#erro", e quando a registros o calculo é feito sem problemas.
Porque isso acontece?

Avelino Sampaio   19/11/2012 06:23:55

Egnaldo,

como está montado o campo que realiza a soma no rodapé do Sub ? Mostre a sintaxe utilizada.

No aguardo

Egnaldo   19/11/2012 20:00:02

Avelino, encontrei o motivo deste "#erro" no campo da soma que esta no formulário.
No Sub a propriedade "Permitir adições" esta como Não, pois uso um outro formulário para inserir os registros.
Será que existe algum metodo para esse "#erro" não aparecer mesmo eu usando a propriedade "Permitir adições" como não.
Agradeço seu retorno.

Marcia back   17/12/2012 22:12:10

Valeu pela dica, salvou o dia!!!

marcelo antonio   24/09/2013 14:59:53

boa tarde, gostaria de saber se este procedimento serve para gravar este valor calculado em uma tabela, tenho três tabelas para pedidos, identificação do pedido, identificação dos produtos e parcelas, no form principal da tabela idpedidos tem um campo valor do pedido que so grava se eu digitar o valor total do pedido, gostaria que ele assumisse esse valor automaticamente assim que calcula-se os itens.


att

idenilton Freitas Carosos   23/10/2013 12:16:13

ideniltondesignet@hotmail.com
#ERRO.
Olá antes de mais nada quero parabeniza-lo pela iniciativa grandiosa.

Mas com relação aos campos calculador, tenho um problema semelhante ao do amigo Egnaldo.
Observei que sempre mostra #ERRO quando não existem registros no SUB FORMULÁRIO.
Daí, o FORMULÁRIO PRINCIPAL mostra #ERRO.

Se alguém consegue resolver esse problema favor ajudar, a comunidade e eu agradeço.

Avelino Sampaio   24/10/2013 19:04:52

Idenilton,

podemos contornar isso utilizando a função NZ(). Exemplo:

=Soma(nz([preçoatual];0))

Se não tiver valor registrado no campo [PreçoAtual] o resultado será ZERO (0)

Sucesso!

Ricardo   08/02/2014 01:36:24

Tenho um formulário principal que contem a caixa de texto saldo anterior e tenho um subformulario contendo os lançamentos do mês a pergunta é não estou conseguindo montar a formula para calcular o saldo do mês anterior =nz(DSoma(" .......... ? Pode me ajudar Avelino ?

Avelino Sampaio   11/02/2014 07:41:28

Ricardo,

Estude o meu tutorial "Movimento Bancário - Saldo, linha a linha, em um formulário"

Bom estudo!

Wilson Crudis   21/03/2014 12:53:59

Como eu poderia subtrair um valor informado em um formulario, de outro formulario ?
se alguem souber me ajudaria muito.

Avelino Sampaio   22/03/2014 04:40:49

Wilson,

estando o outro formulário aberto, basta utilizar o seguinte sintaxe:

me!NomeCampo - forms!NomeFormulário!NomeCampo

Sucesso!

Ernando   20/01/2016 10:31:52

Muito bom. Muito obrigado. Me ajudou muito.

Sebastião Neves   04/05/2016 05:00:24

quais os atalhos para somar por linha ou coluna num formulário?

Avelino Sampaio   04/05/2016 09:15:33

Sebastião,

não foi possível entender o que deseja. Ofereça mais detalhes.

Se inscreva também no nosso fórum sobre Access:

http://www.redeaccess.com.br

No aguardo

José Carlos   23/09/2016 20:38:43

Avelino Boa noite, você poderia me ajudar, tem um banco de dados de uma igreja, no access 2007 no formulário principal,tem um campo (Status) Asim "Ativo e Inativo" eu queria somar todos os membros Ativo deste formulário, confesso que já tentei de tudo e não consigo, me ajudo por favor

Avelino Sampaio   25/09/2016 05:47:49

José,

poste essa sua duvida lá meu fórum que irei te ajudar.

http://www.redeaccess.com.br

No aguardo


Envie seu comentário: