MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    Função Soma() não funciona.

    lgdelai
    lgdelai
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 146
    Registrado : 31/03/2012

    Função Soma() não funciona. Empty Função Soma() não funciona.

    Mensagem  lgdelai 15/2/2016, 00:18

    [Função soma] [#Erro]

    Olá Gente,

    Agradeço muito quem souber o porque deste erro,
    Simplesmente não faz sentido, já tentei diversas variações de código e
    a Função Soma simplesmente não funciona com este código.

    Ao tentar somar os campos de um formulário usando algumas condições, ocorre um erro,
    A soma não é efetuada, em seu lugar é exibida a mensagem #Erro
    Além disto, todos os outros campos do cabeçalho que antes estavam exibindo os dados corretamente também aparecem com a mensagem #Erro

    Função Soma() não funciona. F0s1gx

    * O formulário é o "Filtragem Clientes"
    * O campo é o: "Vencidas_s/pmt"
    * O código que apresenta o erro é o abaixo:

    Código:

    =Soma(
     SeImed(Data()>[Prox_pagamento];
     SeImed([Forma_pagamento_tbcont] = "Permuta";
     0;
     [Parcela_final]
     );
     0
     )
     *
     SeImed(Data()>[Data_ultimo_pagamento];
     [Parcelas]-[Parcelas_pagas];
     SeImed(DifData("m";[Prox_pagamento];Data())<=0;
     1;
     SeImed(Format(Data();"dd")<=Format([Prox_pagamento];"dd");
     DifData("m";[Prox_pagamento];Data());
     (DifData("m";[Prox_pagamento];Data())+1)
     )
     )
     )
    )

    Estou enviando em anexo dois prints, e o banco de dados.

    Obrigado a quem puder ajudar.
    Rolling Eyes
    Anexos
    Função Soma() não funciona. AttachmentErro Access.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (511 Kb) Baixado 4 vez(es)
    lgdelai
    lgdelai
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 146
    Registrado : 31/03/2012

    Função Soma() não funciona. Empty Re: Função Soma() não funciona.

    Mensagem  lgdelai 15/2/2016, 00:27

    Aqui vocês podem ver a estrutura do formulário.

    Função Soma() não funciona. 358a1oh

    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    Função Soma() não funciona. Empty Re: Função Soma() não funciona.

    Mensagem  JPaulo 15/2/2016, 09:29

    Ola;

    No outro tópico eu já lhe tinha proposto que você fize-se o cálculo diretamente no SQL do form;

    http://dl.dropboxusercontent.com/u/771097/DELAITV%2058%20-%20C%C3%B3pia_OLD.zip

    Código:
    SELECT CLIENTES.Nome_cliente, CLIENTES.Nome_fantasia, CONTRATOS.Ativo_con, CONTRATOS.Pagando, CONTRATOS.Forma_pagamento_tbcont, CONTRATOS.Valor_contrato, CONTRATOS.Prox_pagamento, CONTRATOS.Parcelas, CLIENTES.Cidade_emp, CONTRATOS.Ponto_belo, CONTRATOS.Montanha, CONTRATOS.Pinheiros, CONTRATOS.Boa_esperanca, CONTRATOS.Ecoporanga, CONTRATOS.Inicio_da_vigencia, CONTRATOS.Fim_da_vigencia, CONTRATOS.Data_primeiro_pagamento, CONTRATOS.Data_ultimo_pagamento, CLIENTES.Parceiro, CONTRATOS.Valor_parcela, CONTRATOS.Mucurici, CONTRATOS.codcon, CONTRATOS.Nf_tbcont, CONTRATOS.Parcelas_pagas, CONTRATOS.Permuta, CONTRATOS.Parcela_final, Sum(IIf(Date()>[Prox_pagamento],IIf([Forma_pagamento_tbcont]="Permuta",0,[Parcela_final]),0)*IIf(Date()>[Data_ultimo_pagamento],[Parcelas]-[Parcelas_pagas],IIf(DateDiff("m",[Prox_pagamento],Date())<=0,1,IIf(Format(Date(),"dd")<=Format([Prox_pagamento],"dd"),DateDiff("m",[Prox_pagamento],Date()),(DateDiff("m",[Prox_pagamento],Date())+1))))) AS [Vencidas_s/pmt]
    FROM CLIENTES INNER JOIN CONTRATOS ON CLIENTES.codcli = CONTRATOS.codcli
    GROUP BY CLIENTES.Nome_cliente, CLIENTES.Nome_fantasia, CONTRATOS.Ativo_con, CONTRATOS.Pagando, CONTRATOS.Forma_pagamento_tbcont, CONTRATOS.Valor_contrato, CONTRATOS.Prox_pagamento, CONTRATOS.Parcelas, CLIENTES.Cidade_emp, CONTRATOS.Ponto_belo, CONTRATOS.Montanha, CONTRATOS.Pinheiros, CONTRATOS.Boa_esperanca, CONTRATOS.Ecoporanga, CONTRATOS.Inicio_da_vigencia, CONTRATOS.Fim_da_vigencia, CONTRATOS.Data_primeiro_pagamento, CONTRATOS.Data_ultimo_pagamento, CLIENTES.Parceiro, CONTRATOS.Valor_parcela, CONTRATOS.Mucurici, CONTRATOS.codcon, CONTRATOS.Nf_tbcont, CONTRATOS.Parcelas_pagas, CONTRATOS.Permuta, CONTRATOS.Parcela_final;



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Função Soma() não funciona. Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Função Soma() não funciona. Folder_announce_new 102 Códigos VBA Gratuitos...
    Função Soma() não funciona. Folder_announce_new Instruções SQL como utilizar...
    lgdelai
    lgdelai
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 146
    Registrado : 31/03/2012

    Função Soma() não funciona. Empty Re: Função Soma() não funciona.

    Mensagem  lgdelai 15/2/2016, 16:23

    Olá JPaulo. Muito obrigado pela ajuda.

    01 - Se puder me explicar como fazer para adicionar o código sql diretamente no sql do formulário, eu não tenho este conhecimento.  Embarassed


    02 - Da forma como você fez o campo Vencidas s/pmt está exibindo um valor, mas não está somando....
    O campo Vencidas s/pmt, deveria exibir = 1.564,60,
    Mas está exibindo o valor individual de cada cliente, ele muda cada vez que se clica em um cliente diferente replicando o valor de cada um: 875, 100, 1600, 80, ...

    Ele deve exibir a soma dos valores atrasados (em VERMELHO), menos os valores que são PERMUTA (100 e 1600) ou seja, Deveria exibir 1.564,60.

    Se eu usar o código sem a função Soma() como abaixo diretamente no campo Vencidas s/pmt, acontece o mesmo que está acontecendo pela forma que você fez adicionando o código na origem do formulario.

    Código:

     SeImed(Data()>[Prox_pagamento];
     SeImed([Forma_pagamento_tbcont] = "Permuta";
     0;
     [Parcela_final]
     );
     0
     )
     *
     SeImed(Data()>[Data_ultimo_pagamento];
     [Parcelas]-[Parcelas_pagas];
     SeImed(DifData("m";[Prox_pagamento];Data())<=0;
     1;
     SeImed(Format(Data();"dd")<=Format([Prox_pagamento];"dd");
     DifData("m";[Prox_pagamento];Data());
     (DifData("m";[Prox_pagamento];Data())+1)
     )
     )
     )


    O problema ocorre quando adiciono o Soma() para somar todos os valores como abaixo:


    Código:

    =Soma(

     SeImed(Data()>[Prox_pagamento];
     SeImed([Forma_pagamento_tbcont] = "Permuta";
     0;
     [Parcela_final]
     );
     0
     )
     *
     SeImed(Data()>[Data_ultimo_pagamento];
     [Parcelas]-[Parcelas_pagas];
     SeImed(DifData("m";[Prox_pagamento];Data())<=0;
     1;
     SeImed(Format(Data();"dd")<=Format([Prox_pagamento];"dd");
     DifData("m";[Prox_pagamento];Data());
     (DifData("m";[Prox_pagamento];Data())+1)
     )
     )
     )

    )

    Veja que no código acima eu só adicionei =Soma ( ) e fez o erro aparecer.


    confused
    lgdelai
    lgdelai
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 146
    Registrado : 31/03/2012

    Função Soma() não funciona. Empty Re: Função Soma() não funciona.

    Mensagem  lgdelai 19/2/2016, 12:45

    Como podem ver não faz sentido isto que está acontecendo.

    Por favor, se alguém souber como resolver vai ser muito bom.

    Gostaria de saber o que causa este erro.

    Sad
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    Função Soma() não funciona. Empty Re: Função Soma() não funciona.

    Mensagem  JPaulo 19/2/2016, 14:16

    Ola e desculpa a demora;

    Faça o simples;

    Crie uma consulta para lhe devolver o valor real das Vencidas s/pmt = 1.564,60

    No campo do form, use a função DLookup;

    Veja;
    http://dl.dropboxusercontent.com/u/771097/DELAITV%2058%20-%20C%C3%B3pia_OLD_OLD.zip



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Função Soma() não funciona. Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Função Soma() não funciona. Folder_announce_new 102 Códigos VBA Gratuitos...
    Função Soma() não funciona. Folder_announce_new Instruções SQL como utilizar...

    Conteúdo patrocinado


    Função Soma() não funciona. Empty Re: Função Soma() não funciona.

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 11/5/2024, 20:04