MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Rateio de valores

    Compartilhe

    Carlao2
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 19/10/2016

    [Resolvido]Rateio de valores

    Mensagem  Carlao2 em Qui 25 Maio 2017, 17:24

    Boa tarde à todos.
    Sou novato no que se refere a access e estou precisando de uma ajuda.

    No BD em anexo existem duas tabelas, cujo campo de amarração é o campo patr. Preciso de um código que, ao ser chamado execute o rateio de valores das colunas Cust e Depr da tabela CONT, proporcional ao VlNovo da tabela FIS e esses valores rateados sejam preenchidos nas respectivas colunas da tabela FIS, e, após o rateio o código já calcule o res,  que nada mais é que o Cust - Depr, também da tabela FIS

    Importante:

    1 - Como tenho outros registros nas tabelas com outros códigos na coluna Idop, é preciso que o rateio seja feito somente para os itens marcados na coluna idop da tabela CONT como "B3" e como "I3" na tabela FIS
    2 - Esse rateio não poderá ter nem um centavo de diferença.
    3 - Caso haja diferença, essa deve ser tirada no valor correspondente ao primeiro Ativo da tabela FIS


    Informação:

    No arquivo em Excel, como exemplo, usei o Patr de número 0454545454 e fiz o rateio, acertando a diferença no Ativo de número 000006

    Desde já agradeço a atenção
    Anexos
    exemploRat.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (22 Kb) Baixado 6 vez(es)

    Carlao2
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 19/10/2016

    Rateio de valores

    Mensagem  Carlao2 em Qui 25 Maio 2017, 17:27

    Esse anexo é o exemplo em Excel
    Anexos
    EXEMPLO MAXIMO.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (9 Kb) Baixado 6 vez(es)

    Carlao2
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 19/10/2016

    sem solução

    Mensagem  Carlao2 em Ter 30 Maio 2017, 16:58

    Boa tarde à todos.

    Até a presente data não obtive uma resposta, mas de qualquer forma agradeço a atenção dos senhores.

    Valeu

    Carlao2
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 19/10/2016

    Re: [Resolvido]Rateio de valores

    Mensagem  Carlao2 em Qui 01 Jun 2017, 12:41

    Bom dia à todos.

    Por favor, alguém ai que possa me ajudar com essa questão? Question

    Pessoal, por favor, estou precisando muito dessa ajuda.

    Desde já agradeço
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6391
    Registrado : 05/11/2009

    Re: [Resolvido]Rateio de valores

    Mensagem  Alexandre Neves em Seg 12 Jun 2017, 17:31

    Boa tarde,
    Como anda a dúvida?


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Carlao2
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 19/10/2016

    Re: [Resolvido]Rateio de valores

    Mensagem  Carlao2 em Seg 12 Jun 2017, 18:43

    Boa tarde Alexandre.

    Até o momento, infelizmente ainda não obtive nenhuma ajuda.

    Agradeço pelo interesse.

    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6391
    Registrado : 05/11/2009

    Re: [Resolvido]Rateio de valores

    Mensagem  Alexandre Neves em Seg 12 Jun 2017, 23:45

    Utilize este procedimento
    Não entendi as diferenças. Exemplifique
    Código:
    Sub CriaRateio()
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '  código criado por Alexandre Neves, do Fórum MaximoAccess                                                '
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Dim Rst1 As DAO.Recordset, Rst2 As DAO.Recordset
        Set Rst1 = CurrentDb.OpenRecordset("SELECT * FROM Cont WHERE IDOP='B3' ORDER BY Patr")
        Set Rst2 = CurrentDb.OpenRecordset("SELECT * FROM FIS WHERE IDOP='I3' ORDER BY Patr")
        Do While Not Rst1.EOF
            Do While Not Rst2.EOF
                If Rst1("Patr") = Rst2("Patr") Then
                    Rst2.Edit
                    Rst2("Cust") = Rst1("Cust")
                    Rst2("Dep") = Rst1("Dep")
                    Rst2("Res") = Rst1("Res")
                    Rst2.Update
                Else
                    Exit Do
                End If
                Rst2.MoveNext
            Loop
            Rst1.MoveNext
        Loop
        Set Rst1 = Nothing: Set Rst2 = Nothing
    End Sub


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Carlao2
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 19/10/2016

    Re: [Resolvido]Rateio de valores

    Mensagem  Carlao2 em Ter 13 Jun 2017, 13:10

    Alexandre. Bom dia
    Desde já agradeço a atenção e vou testar esse código
    Quanto as diferenças é porque pode haver dizimas quando se executa o rateio. Ex. um valor 1250,00, tendo que ser rateado, pode acontecer de um item ficar com o valor de 123,2225, como o valor tem que ser com duas casas decimais, esse valor fica 123,23, e na somatória geral fica o valor de 1250,01, ou seja essa diferença de 0,01 terá que ser acertada no primeiro ativo. Vou tentar exemplificar melhor.

    Custo a ser rateado ativo Valor de novo Rateio arredondamento
    13.580,00 0010 1.350,00 1302,0402 1302,04
    0008 2.500,00 2411,1856 2411,19
    0015 1.280,00 1234,527 1234,53
    0005 354,00 341,42389 341,42
    0012 253,00 244,01199 244,01
    0007 3.000,00 2893,4228 2893,42
    0018 5.343,21 5153,3885 5153,38

    total 13,579,99

    Ou seja. a diferença de 0,01 deverá ser acertada no ativo de número 0005, passando a ter o valor de 341,43

    Desde já agradeço a atenção

    No aguardo

    Abraços

    Carlao2
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 19/10/2016

    Re: [Resolvido]Rateio de valores

    Mensagem  Carlao2 em Ter 13 Jun 2017, 13:21

    Segue o exemplo em excel

    Grato
    Anexos
    exemplo alexandre.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (8 Kb) Baixado 3 vez(es)

    Carlao2
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 19/10/2016

    Re: [Resolvido]Rateio de valores

    Mensagem  Carlao2 em Ter 13 Jun 2017, 13:23

    Em tempo

    Lembre-se que o rateio tem que ser proporcional ao valor de Novo "VlNovo"


    Abs

    Carlao2
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 19/10/2016

    Re: [Resolvido]Rateio de valores

    Mensagem  Carlao2 em Ter 13 Jun 2017, 14:31

    Alexandre.

    Testei o módulo e o mesmo não funciona.

    Veja o exemplo anexo, ele está pegando o valor do cust da tabela Cont e colocando em todos os itens de cust da tabela Fis

    Nesse anexo explico também como é calculado o rateio

    Obrigado

    No aguardo
    Anexos
    rateio nao funciona.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (30 Kb) Baixado 4 vez(es)
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6391
    Registrado : 05/11/2009

    Re: [Resolvido]Rateio de valores

    Mensagem  Alexandre Neves em Ter 13 Jun 2017, 15:07

    No caso do Excel que não funciona
    onde encontro ou como é calculado o total vlnovo?



    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Carlao2
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 19/10/2016

    Re: [Resolvido]Rateio de valores

    Mensagem  Carlao2 em Ter 13 Jun 2017, 15:20

    nesse ultimo exemplo voce tera a imagem das tabelas no access onde eu executei o módulo e não funcionou, ele só pega o valor de Cust Dep e Res da tabela Cont e preenche para todos os itens da tabela Fis.
    Nesse ultimo exemplo também tem o calculo para se conseguir o rateio só que nesse caso feito em excel
    Os valores de Novo já me vem preenchido o que faço é somar no excel por Patr

    Carlao2
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 19/10/2016

    Re: [Resolvido]Rateio de valores

    Mensagem  Carlao2 em Ter 13 Jun 2017, 15:30

    Seria algo do tipo:

    Por Ptr
    Valor Cust da Tabela Fis = Format (Valor Cust da Tabela Cont / total do VlNovo da tabela Fis * VlNovo da tabela Fis), 0,00)
    Valor Dep da Tabela Fis = Format ( Valor Dep da Tabela Cont / total do VlNovo da tabela Fis * VlNovo da tabela Fis), 0,00)


    Independente de Ptr

    Valor Res da Tabela Fis = Format ( Valor Cust da Tabela Fis - Valor Dep da Tabela Fis),0,00)

    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6391
    Registrado : 05/11/2009

    Re: [Resolvido]Rateio de valores

    Mensagem  Alexandre Neves em Ter 13 Jun 2017, 15:59

    Como determino qual o ativo que vai fazer o arredondamento?


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Carlao2
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 19/10/2016

    Re: [Resolvido]Rateio de valores

    Mensagem  Carlao2 em Ter 13 Jun 2017, 18:48

    Pelo 1º ativo, ou seja o ativo de menor número.

    Isso por patr
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6391
    Registrado : 05/11/2009

    Re: [Resolvido]Rateio de valores

    Mensagem  Alexandre Neves em Ter 13 Jun 2017, 21:28

    Veja se é isto
    Código:
    Sub CriaRateio()
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '  código criado por Alexandre Neves, do Fórum MaximoAccess                                                '
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Dim Rst1 As DAO.Recordset, Rst2 As DAO.Recordset, dblCust As Double, dblDep As Double, dblTotalCust As Double, dblTotalDep As Double
        Set Rst1 = CurrentDb.OpenRecordset("SELECT patr, cust,dep, cust/(select sum(VlNovo) from fis where patr=cont.patr) as PercCust, dep/(select sum(VlNovo) from fis where patr=cont.patr) as PercDep from cont WHERE IDOP='B3' ORDER BY Patr")
        Do While Not Rst1.EOF
            dblTotalCust = 0: dblTotalDep = 0
            Set Rst2 = CurrentDb.OpenRecordset("SELECT * FROM FIS WHERE IDOP='I3' and Patr='" & Rst1("Patr") & "' ORDER BY Ativo Desc")
            Rst2.MoveLast: Rst2.MoveFirst
            Do While Not Rst2.EOF
                If Rst2.AbsolutePosition = Rst2.RecordCount - 1 Then
                    Rst2.Edit
                    Rst2("Cust") = Rst1("Cust") - dblTotalCust
                    Rst2("Dep") = Rst1("Dep") - dblTotalDep
                    Rst2.Update
                Else
                    dblCust = Format(Rst1("PercCust") * Rst2("VlNovo"), "0.00")
                    dblDep = Format(Rst1("PercDep") * Rst2("VlNovo"), "0.00")
                    dblTotalCust = dblTotalCust + dblCust
                    dblTotalDep = dblTotalDep + dblDep
                    Rst2.Edit
                    Rst2("Cust") = dblCust
                    Rst2("Dep") = dblDep
                    Rst2.Update
                End If
                Rst2.MoveNext
            Loop
            Rst1.MoveNext
        Loop
        Set Rst1 = Nothing: Set Rst2 = Nothing
        CurrentDb.Execute "UPDATE FIS SET Res=Cust-Dep"
    End Sub


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Carlao2
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 19/10/2016

    Re: [Resolvido]Rateio de valores

    Mensagem  Carlao2 em Ter 13 Jun 2017, 21:42

    Alexandre. Boa tarde

    Testei e parece estar perfeito.
    Só uma pergunta para meu entendimento, no caso de diferença ele acerta no 1º ativo, tanto pata cust como para depr e res, correto?
    Amigo, muito obrigado.
    Você não imagina o tempo de trabalho que você me poupou.
    É bom saber que podemos contar com pessoas dispostas a nos ajudar.

    Valeu

    Abraços
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6391
    Registrado : 05/11/2009

    Re: [Resolvido]Rateio de valores

    Mensagem  Alexandre Neves em Ter 13 Jun 2017, 21:48

    Ele ordena, em cada Patr, por ordem decrescente de Ativo, ficando o Ativo mais baixo para último para ser colocada a diferença entre o total (em Cust e Dep) e o que já tenha colocado nos outros, do mesmo Patr
    O Res é criado pela diferença entre o Cust e Dep já registados anteriormente


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Carlao2
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 19/10/2016

    Re: [Resolvido]Rateio de valores

    Mensagem  Carlao2 em Qua 14 Jun 2017, 11:57

    Alexandre

    |Bom dia

    Ok. Perfeito

    Mais uma vez muito obrigado

    E assim vamos, uns ajudando outros e com isso todos nós saímos ganhando em aprendizagem.

    Abracos

    Carlao2
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 19/10/2016

    Re: [Resolvido]Rateio de valores

    Mensagem  Carlao2 em Sex 16 Jun 2017, 15:58

    Alexandre. Bom dia
    Desculpe o incomodo

    Tenho somente mais uma dúvida, poderia me esclarecer?

    Seguinte:

    A casos em que a minha coluna patr é número e não texto.

    Nesse caso qual alteração tenho que fazer nesse código?

    Desde já agradeço

    Abracos

    Carlao2
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 19/10/2016

    Re: [Resolvido]Rateio de valores

    Mensagem  Carlao2 em Sex 16 Jun 2017, 16:00

    Alexandre. Bom dia
    Desculpe o incomodo

    Tenho somente mais uma dúvida, poderia me esclarecer?

    Seguinte:

    A casos em que a minha coluna patr é número e não texto.

    Nesse caso qual alteração tenho que fazer nesse código?

    Desde já agradeço

    Abraços
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6391
    Registrado : 05/11/2009

    Re: [Resolvido]Rateio de valores

    Mensagem  Alexandre Neves em Sex 16 Jun 2017, 19:43

    Boa tarde,
    A coluna é alterada?
    Para a adaptar de texto para número, basta em vez de Patr='" & Rst1("Patr") & "' colocar Patr=" & Rst1("Patr") & "
    Isto se for texto nas duas tabelas, caso contrário é preciso saber em qual é texto e em qual é número


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Carlao2
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 19/10/2016

    Re: [Resolvido]Rateio de valores

    Mensagem  Carlao2 em Sex 16 Jun 2017, 20:00

    Alexandre

    Quando a coluna patr é número ela é nas duas tabelas
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6391
    Registrado : 05/11/2009

    Re: [Resolvido]Rateio de valores

    Mensagem  Alexandre Neves em Sex 16 Jun 2017, 20:03

    Para a adaptar de texto para número, basta em vez de Patr='" & Rst1("Patr") & "' colocar Patr=" & Rst1("Patr") & "


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Carlao2
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 19/10/2016

    Re: [Resolvido]Rateio de valores

    Mensagem  Carlao2 em Sex 16 Jun 2017, 20:21

    Desculpe a minha falta de conhecimento, estou aprendendo

    A unica diferença que vi foi o apóstrofe depois do segundo &, é isso mesmo?

    & "' para & "

    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6391
    Registrado : 05/11/2009

    Re: [Resolvido]Rateio de valores

    Mensagem  Alexandre Neves em Sex 16 Jun 2017, 20:37

    Sim, para valores numéricos é sem apóstrofo, para valores de cadeia é com apóstrofo


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Carlao2
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 19/10/2016

    Re: [Resolvido]Rateio de valores

    Mensagem  Carlao2 em Sex 16 Jun 2017, 21:32

    ok Muito obrigado

    Boa tarde

    Abs

      Data/hora atual: Qui 21 Set 2017, 02:37