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

    Soma Não Funciona [Antigo post]

    lgdelai
    lgdelai
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Soma Não Funciona [Antigo post] Empty Soma Não Funciona [Antigo post]

    Mensagem  lgdelai 7/2/2016, 17:57

    [ATENÇÃO]

    Este post foi atualizado e eu criei um novo mais bem explicado, por favor, acesse-o neste link.

    https://www.maximoaccess.com/t25595-funcao-soma-nao-funciona

    Grato.

    __________________________________________________________

    Olá Gente,

    Bom carnaval a todos \o/

    Bom, estou em uma roça, e aqui não tem internet, tenho que subir um morro para postar, então vou demorar um pouco a responder ok?

    Estou recebendo um erro ao tentar somar as parcelas em atraso em um bd access.
    Se alguém puder dar uma olhada e dizer o que pode estar dando este erro eu agradeço muito.

    Alguma considerações:

    Podem baixar o sistema neste link:

    https://mega.nz/#!5RMV0aRZ!9UnMcpwWBokIpxjVG4a95KKkKuIWBA-bt7fglcXooVE

    A Função deve ser colada dentro do campo "+Atrasadas"

    Eu estava usando este código abaixo:

    http://pastebin.com/agH3YHN4

    ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
    =Soma(
    SeImed( Data() > [Prox_pagamento];
    [Valor_parcela];
    0
    )
    *
    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)
    )
    )
    )
    ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬

    Porém ele continuava calculando os meses mesmo após ultrapassar a data do ultimo pagamento, pois ele usava a diferença ente a ultima parcela a pagar e a data a data atual.

    Para corrigir, adicionei algumas linhas para verificar também se a data atual é superior a data definida para o ultimo pagamento, se for, o calculo será feito usando a diferença entre a ultima parcela sem pagar e a data para o ultimo pagamento.

    Mas não dá certo, o calculo não funciona.

    Quando eu pego as funções isoladamente e coloco no campo "atrasadas" é exibido e calculado normalmente, porém quando jogo todo o código dá erro.

    Vejam abaixo o código que está apresentando o erro:

    http://pastebin.com/qxd4N9pu

    ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
    Soma(
    // Verifica se a data atual ja passou da data do proximo pagamento.
    // Se sim retorna o valor da parcela para ser multiplicado pela quantidade de meses em atraso.
    // Se não retorna 0 e a parcela não é calculada.
    SeImed( Data() > [Prox_pagamento]; [Valor_parcela]; 0 ) *

    // Novamente Verifica se a data atual ja passou da data do proximo pagamento.
    SeImed( Data() > [Prox_pagamento];
    // SE SIM Verifica se a data atual ja passou da data do ultimo pagamento.
    SeImed( Data() > [Data_ultimo_pagamento];
    // SE SIM Verifica se o dia atual ja passou do dia do ultimo pagamento
    SeImed( Format( Data();"dd" ) > Format( [Data_ultimo_pagamento];"dd" );
    // SE SIM Calcula diferença de meses entre a data do proximo pagamento até a data do ULTIMO PAGAMENTO INCLUINDO o mes atual.
    DifData("m";[Prox_pagamento];[Data_ultimo_pagamento]+1);
    // SE NÃO Calcula diferença de meses entre a data do proximo pagamento até a data do ULTIMO PAGAMENTO EXCLUINDO o mes atual.
    DifData("m";[Prox_pagamento];[Data_ultimo_pagamento])
    );
    // SE NÃO Verifica se o dia atual ja passou do dia do proximo pagamento.
    SeImed( Format( Data();"dd" ) > Format( [Prox_pagamento];"dd" );
    // SE SIM Calcula diferença de meses entre a data do proximo pagamento até a data ATUAL INCLUINDO o mes atual.
    DifData("m";[Prox_pagamento];Data()+1);
    //SE NÃO Calcula diferença de meses entre a data do proximo pagamento até a data ATUAL EXCLUINDO o mes atual.
    DifData("m";[Prox_pagamento];Data())
    )
    );
    // SE NÃO Retorna ZERO
    0
    )
    )

    ---------------------------------------

    Obrigado a quem puder ajudar Very Happy


    Última edição por lgdelai em 15/2/2016, 00:44, editado 3 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

    Soma Não Funciona [Antigo post] Empty Re: Soma Não Funciona [Antigo post]

    Mensagem  lgdelai 8/2/2016, 13:51

    Sad
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    Soma Não Funciona [Antigo post] Empty Re: Soma Não Funciona [Antigo post]

    Mensagem  JPaulo 8/2/2016, 13:57

    Ola;

    Em que form está a fazer isso ?


    .................................................................................
    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

    Soma Não Funciona [Antigo post] Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Soma Não Funciona [Antigo post] Folder_announce_new 102 Códigos VBA Gratuitos...
    Soma Não Funciona [Antigo post] 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

    Soma Não Funciona [Antigo post] Empty Re: Soma Não Funciona [Antigo post]

    Mensagem  lgdelai 8/2/2016, 14:04

    Olá. é o formulário Contratos.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    Soma Não Funciona [Antigo post] Empty Re: Soma Não Funciona [Antigo post]

    Mensagem  JPaulo 8/2/2016, 14:07

    Nesse form não encontro alguns campos, nomeadamente o campo "+Atrasadas"


    .................................................................................
    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

    Soma Não Funciona [Antigo post] Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Soma Não Funciona [Antigo post] Folder_announce_new 102 Códigos VBA Gratuitos...
    Soma Não Funciona [Antigo post] Folder_announce_new Instruções SQL como utilizar...
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    Soma Não Funciona [Antigo post] Empty Re: Soma Não Funciona [Antigo post]

    Mensagem  JPaulo 8/2/2016, 14:13

    Abra uma consulta nova em modo SQL, cole isto e veja se o resultado está correto, para testar;

    Código:
    SELECT CONTRATOS.codcon, CONTRATOS.codcli, CONTRATOS.Ativo_con, CONTRATOS.Espaco_contratado, CONTRATOS.Duracao_do_contrato, CONTRATOS.Inicio_da_vigencia, CONTRATOS.Fim_da_vigencia, CONTRATOS.Ponto_belo, CONTRATOS.Mucurici, CONTRATOS.Montanha, CONTRATOS.Pinheiros, CONTRATOS.Boa_esperanca, CONTRATOS.Ecoporanga, CONTRATOS.Distribuicao, CONTRATOS.Contrato_obs, CONTRATOS.Pagando, CONTRATOS.Parcelas, CONTRATOS.Valor_parcela, CONTRATOS.Parcela_final, CONTRATOS.Valor_contrato, CONTRATOS.Dia_para_pagamento, CONTRATOS.Data_primeiro_pagamento, CONTRATOS.Data_ultimo_pagamento, CONTRATOS.Forma_pagamento_tbcont, CONTRATOS.Decrescente, CONTRATOS.Nf_tbcont, CONTRATOS.Opcao_nf_pf_pj, CONTRATOS.Prox_pagamento, CONTRATOS.Total_pago, CONTRATOS.Kit_entregue, Sum(IIf(Date()>[Prox_pagamento],[Valor_parcela],0)*IIf(Date()>[Prox_pagamento],IIf(Date()>[Data_ultimo_pagamento],IIf(Format(Date(),"dd")>Format([Data_ultimo_pagamento],"dd"),DateDiff("m",[Prox_pagamento],[Data_ultimo_pagamento]+1),DateDiff("m",[Prox_pagamento],[Data_ultimo_pagamento])),IIf(Format(Date(),"dd")>Format([Prox_pagamento],"dd"),DateDiff("m",[Prox_pagamento],Date()+1),DateDiff("m",[Prox_pagamento],Date()))),0)) AS Resultado
    FROM CONTRATOS
    GROUP BY CONTRATOS.codcon, CONTRATOS.codcli, CONTRATOS.Ativo_con, CONTRATOS.Espaco_contratado, CONTRATOS.Duracao_do_contrato, CONTRATOS.Inicio_da_vigencia, CONTRATOS.Fim_da_vigencia, CONTRATOS.Ponto_belo, CONTRATOS.Mucurici, CONTRATOS.Montanha, CONTRATOS.Pinheiros, CONTRATOS.Boa_esperanca, CONTRATOS.Ecoporanga, CONTRATOS.Distribuicao, CONTRATOS.Contrato_obs, CONTRATOS.Pagando, CONTRATOS.Parcelas, CONTRATOS.Valor_parcela, CONTRATOS.Parcela_final, CONTRATOS.Valor_contrato, CONTRATOS.Dia_para_pagamento, CONTRATOS.Data_primeiro_pagamento, CONTRATOS.Data_ultimo_pagamento, CONTRATOS.Forma_pagamento_tbcont, CONTRATOS.Decrescente, CONTRATOS.Nf_tbcont, CONTRATOS.Opcao_nf_pf_pj, CONTRATOS.Prox_pagamento, CONTRATOS.Total_pago, CONTRATOS.Kit_entregue;


    .................................................................................
    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

    Soma Não Funciona [Antigo post] Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Soma Não Funciona [Antigo post] Folder_announce_new 102 Códigos VBA Gratuitos...
    Soma Não Funciona [Antigo post] 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

    Soma Não Funciona [Antigo post] Empty Re: Soma Não Funciona [Antigo post]

    Mensagem  lgdelai 8/2/2016, 14:28

    Olá.
    Desculpe posso ter me equivocado pois estou no celular agora.

    Faça o seguinte.
    Abra o formulario Clientes.
    entao clique no botao Contratos.

    Sera aberto o formulario com a relacao de parcelas e seus dados.

    veja a imagem neste link:
    https://mega.nz/#!hQdzTJgZ!hWU6b6O53kVldhkGIvjZdQn-QJE3C1Y8Gt3zsDYQsjs
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    Soma Não Funciona [Antigo post] Empty Re: Soma Não Funciona [Antigo post]

    Mensagem  JPaulo 8/2/2016, 14:29

    Ok, é form "FILTRAGEM CONTRATOS".


    .................................................................................
    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

    Soma Não Funciona [Antigo post] Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Soma Não Funciona [Antigo post] Folder_announce_new 102 Códigos VBA Gratuitos...
    Soma Não Funciona [Antigo post] Folder_announce_new Instruções SQL como utilizar...
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    Soma Não Funciona [Antigo post] Empty Re: Soma Não Funciona [Antigo post]

    Mensagem  JPaulo 8/2/2016, 14:58

    Veja se é isto;

    Adicionei a formula no SQL da origem do form;

    http://dl.dropboxusercontent.com/u/771097/----%20DELAITV%2058%20-%20C%C3%B3pia_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

    Soma Não Funciona [Antigo post] Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Soma Não Funciona [Antigo post] Folder_announce_new 102 Códigos VBA Gratuitos...
    Soma Não Funciona [Antigo post] 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

    Soma Não Funciona [Antigo post] Empty Re: Soma Não Funciona [Antigo post]

    Mensagem  lgdelai 8/2/2016, 18:09

    Vou testar e retorno.
    Muito obrigado.

    Se puder me explicar melhor o que fez, onde foi que alyerou no bd fico grato.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    Soma Não Funciona [Antigo post] Empty Re: Soma Não Funciona [Antigo post]

    Mensagem  JPaulo 9/2/2016, 12:08

    Então, tal como escrevi, acima
    Adicionei a formula no SQL da origem do form;

    A fórmula está na mensagem n6.


    .................................................................................
    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

    Soma Não Funciona [Antigo post] Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Soma Não Funciona [Antigo post] Folder_announce_new 102 Códigos VBA Gratuitos...
    Soma Não Funciona [Antigo post] 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

    Soma Não Funciona [Antigo post] Empty Re: Soma Não Funciona [Antigo post]

    Mensagem  lgdelai 9/2/2016, 20:37

    Olá JPaulo.

    Desculpe a demora, estive sem internet.
    Abaixo vou colar um texto que escrevi no pc explicando a que ponto cheguei.

    Segue tambem link do banco de dados alterado.

    Uma observação. nao consegui abrir seu bd. recebia um erro de formato não reconhecido.

    Link novo BD:
    https://mega.nz/#!ABswkC4I!ZQBJHZoWYivqF9uc9MdRR9ReAgkrqyWuGLrrt2RNcec

    Link novo Print:
    https://mega.nz/#!hZdhRbhC!7PSPAabEHs1EGR27CAHLGN953AycwP6Jk6slz-D0mbc

    // Consegui fazer o calculo corretamente, tive que adicionar a tabela contratos a quantidade de parcelas
    // Pagas, para então diminuir este valor da quantidade de parcelas, então terei o valor correto para usar no cálculo.

    // Porém, ao tentar adicionar uma nova condição ao calculo, NÃO FUNCIONA. Eu quero criar um novo campo onde
    // Seja excluidas dos calculos da soma os contratos que são permutas. Para isto adicionei no formulário
    // O campo [Forma_pagamento_tbcont] e verifico se o texto "Permuta" existe, se existir, multiplica por zero
    // ou seja, ignora o valor, se não existir, multiplica por 1, mas não está funcionando.

    // Uma observação importante: Se eu retirar a função Soma, O calculo é feito corretamente, quando clico em cada contrato,
    // Mas com a função soma não da certo.
    // Outra coisa: TODOS os campos estão na mesma tabela CONTRATOS e na mesma área do formulário.

    // Porque A Soma não está funcinando quando adiciono esta condição?
    SeImed( [Forma_pagamento_tbcont] ="Permuta";
    0;
    1
    )
    *
    // Isoladamente ela funciona perfeitamente


    // ESTE CÓDIGO É REFERENTE AO CAMPO [Atrasadas s/permuta]


    // Este é o código que está funcionando.

    // ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬

    =Soma(
    SeImed( Data() > [Prox_pagamento];
    [Valor_parcela];
    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)
    )
    )
    )
    )

    // ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬






    // Este é o código que está dando #Erro.

    // ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬

    =Soma(
    SeImed( Data() > [Prox_pagamento];
    [Valor_parcela];
    0
    )
    *
    // ESTA É A PARTE NOVA QUE VERIFICA PERMUTA-----------------
    SeImed( [Forma_pagamento_tbcont] ="Permuta";
    0;
    1
    )
    *
    // ESTA É A PARTE NOVA QUE VERIFICA PERMUTA-----------------
    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)
    )
    )
    )
    )

    // ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
    lgdelai
    lgdelai
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Soma Não Funciona [Antigo post] Empty Re: Soma Não Funciona [Antigo post]

    Mensagem  lgdelai 11/2/2016, 03:13

    Alguém mais sabe o porque desta funcao doma nao eatar dando certo?
    lgdelai
    lgdelai
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Soma Não Funciona [Antigo post] Empty Re: Soma Não Funciona [Antigo post]

    Mensagem  lgdelai 15/2/2016, 00:41

    Olá JPaulo.

    Criei um novo tópico mais bem explicado sobre o erro.

    Nele postei um novo banco de dados após algumas melhorias.

    Se puder olhar, agradeço muito.

    https://www.maximoaccess.com/t25595-funcao-soma-nao-funciona

    Boa noite. Very Happy

    Conteúdo patrocinado


    Soma Não Funciona [Antigo post] Empty Re: Soma Não Funciona [Antigo post]

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/4/2024, 07:59