Como exibir valor total de um sub formulário, no formulário principal ?
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.
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:
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:
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é:
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.
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
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!
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
34 comentários PEDRO SIMOES 15/11/2024 04:43:36 Puxa vida!!! O vídeo explica tudo! Cometia esse erro de querer a soma do TXT, quando na verdade deveria somar o CAMPO. Mistério solucionado! Valeu mesmo. Só relatando pelo que estava passando: Tinha um campo de nome VALOR e estava dando erro na soma. Creio que essa palavra VALOR é reservada e por isso dava o conflito. Alterei o nome do campo para ValorCompra e resolveu. 👍😎 Aldir da Silva Brazil 09/05/2023 11:58:08 Boa Tarde, Avelino. Eu lí. Mas não consegui fazer a soma do campo: [Tempo_Ponto] e colocar o resultado no campo:[Txt_Total] =Soma([Filho21]![Tempo_Ponto]![Txt_Total]) Tem como me ajudar !!!!!! Avelino Sampaio 09/05/2023 05:59:11 Aldir Veja se este meu artigo atende: http://www.usandoaccess.com.br/tutoriais/calculo-horas-extras-e-soma-superior-a-24-horas.asp?id=1#inicio Bom estudo! Aldir da Silva Brazil 09/05/2023 05:27:53 =Soma([M2M_Glob03]![Tempo_Total]![Txt_Total]) não da certo aldirbrazil@hotmail.com Aldir da Silva Brazil 09/05/2023 05:25:52 Bom dia ! Preciso de ajuda, tenho que somar campos 00:01:20 de um subformulário e colocar a soma no formulário principal. Como faço, tentei e não da certo. Obrigado Rui 11/01/2023 08:33:23 O exemplo acima não funciona com o Access 2007, a função soma a partir da origem do controlo não funciona, preciso de ajuda nesse sentido, as versões acima funciona. oliveira 02/01/2023 06:21:33 tenho um campo multa e gostaria de saber o que esto fazendo de errado que o valor sai menor 0,12 centavos a menos no outro campo demostrativo de valores em reais. exemplo campo(Multa) 2 % em porcentagem campo demostrativo do valor Multa em reais. =([Multa]*[val_par])/100 resultado em 8,33 errado resultado desejado 8,45 obrigado desde já. Avelino Sampaio 25/09/2022 05:47:49 José, poste essa sua duvida lá meu fórum que irei te ajudar. http://www.redeaccess.com.br No aguardo José Carlos 23/09/2022 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 04/05/2022 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 Sebastião Neves 04/05/2022 05:00:24 quais os atalhos para somar por linha ou coluna num formulário? Ernando 20/01/2022 10:31:52 Muito bom. Muito obrigado. Me ajudou muito. Marcia back 17/12/2021 22:12:10 Valeu pela dica, salvou o dia!!! Egnaldo 19/11/2021 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. Avelino Sampaio 19/11/2021 06:23:55 Egnaldo, como está montado o campo que realiza a soma no rodapé do Sub ? Mostre a sintaxe utilizada. No aguardo Egnaldo 17/11/2021 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? Mais uma vez!! 26/10/2021 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 Avelino Sampaio 24/10/2021 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! idenilton Freitas Carosos 23/10/2021 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 03/10/2021 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 Suporte_eficaz 26/09/2021 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. marcelo antonio 24/09/2021 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 Avelino Sampaio 16/08/2021 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 Ricardo Nunes 15/08/2021 14:34:32 Avelino, Quando tem que calcular através do back end funciona também? Avelino Sampaio 12/04/2021 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 ? ANDERSON MUNHOZ MADEIRA 12/04/2021 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 22/03/2021 04:40:49 Wilson, estando o outro formulário aberto, basta utilizar o seguinte sintaxe: me!NomeCampo - forms!NomeFormulário!NomeCampo Sucesso! Wilson Crudis 21/03/2021 12:53:59 Como eu poderia subtrair um valor informado em um formulario, de outro formulario ? se alguem souber me ajudaria muito. Avelino Sampaio 11/02/2021 07:41:28 Ricardo, Estude o meu tutorial "Movimento Bancário - Saldo, linha a linha, em um formulário" Bom estudo! Anderson Luiz 09/02/2021 20:39:32 Grande Avelino! Aqui é o IOB do Access. Informações objetivas. Excelente! Anderson 09/02/2021 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 09/02/2021 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. Marcelo David 08/02/2021 19:41:48 Muito bom! Parabéns Avelino!! Ricardo 08/02/2021 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 ? |