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

    Multiplicacao de valores no mesmo campo

    avatar
    rafamaga
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 26/04/2012

    Multiplicacao de valores no mesmo campo Empty Multiplicacao de valores no mesmo campo

    Mensagem  rafamaga 13/10/2016, 21:46

    Eu utilizo o ACCESS2013  e gostaria de uma ajuda.

    Tenho um consulta com os campos "matrícula", "competencia" (ano e mês:AAAAMM) e o "fator de acumulação" (matemática financeira) no seguinte formato:


    Matrícula   ;     Competencia  ;     Fator
    1         ;            201601       ;     1,0123
    1         ;            201602       ;     1,0345
    1         ;            201603       ;     1,0678
    1         ;            201604       ;     1,0789
    1         ;            201605       ;     1,0456
    2         ;            201602       ;     1,0234
    2         ;            201603       ;     1,0578
    2         ;            201604       ;     1,0312
    (...)

    (OBS: são mais de 100 competências e mais de 1000 matrículas)

    O que eu gostaria era de fazer uma nova consulta, com agrupamento de matrícula, multiplicando os fatores das competências que eu determinar em uma consulta e apresentar  resultado como campo da consulta.

    Por exemplo, eu posso querer, agrupado por matrícula, qual seria a correção para o período de fevereiro a abril de 2016, resultando em uma consulta desta forma:
    Matrícula        Fator Acumulado
    1                    Resultado da fórmula: (1,0345 * 1,0678 * 1,0789)
    2                    Resultado da fórmula: (1,0234 * 1,0578 * 1,0312)  

    Dúvidas:
    1) Tem como fazer isto em forma de consulta? De que forma?

    2) Caso não tenha como fazer como consulta, tem como fazer em VBA? Aguem tem algum modelo para facilitar?

    Obrigado.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    Multiplicacao de valores no mesmo campo Empty Re: Multiplicacao de valores no mesmo campo

    Mensagem  Alvaro Teixeira 14/10/2016, 18:26

    Olá, será melhor postar base de dados com tabela e consulta que tem.
    De preferência com os dados que descreveu.
    Assim fica mais fácil para qualquer membro poder ajudar.
    Abraço
    avatar
    rafamaga
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 26/04/2012

    Multiplicacao de valores no mesmo campo Empty Banco de dados exemplo

    Mensagem  rafamaga 17/10/2016, 13:47

    Bom dia!

    Segue o banco de dados.

    A consulta tem um campo multiplicacao que seria a expressão que estou perguntando.

    Muito obrigado a todos! Boa semana.
    Anexos
    Multiplicacao de valores no mesmo campo AttachmentComoMultiplicar.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (86 Kb) Baixado 13 vez(es)
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    Multiplicacao de valores no mesmo campo Empty Re: Multiplicacao de valores no mesmo campo

    Mensagem  Alvaro Teixeira 17/10/2016, 16:51

    Olá Rafael, veja se é o que pretende.
    Esta técnica, perde a performance da base de dados, mas obtem o pretendido.

    Fiz um formulario para colocar as datas, pois é necessário na Consulta e no código VBA
    O código da função é esta:
    Código:
    Public Function fncAgrupaFator(dblMatricula As String) As Double
    'Alvaro Teixeira (ahteixeira) - 2016 para MaximoAccess
    Dim rs As DAO.Recordset
    Dim strSql As String
    Dim dblFator As Double

    strSql = "SELECT * FROM RentPorMatricula WHERE Matricula = " & dblMatricula & " AND ANOMes >= " & Forms!frmConsulta!dtInicial & " AND ANOMes <= " & Forms!frmConsulta!dtFinal & ";"

    Set rs = CurrentDb.OpenRecordset(strSql,

       Do While Not rs.EOF
           If rs.RecordCount = 1 Then
              dblFator = rs!FatorAcumulacao
           Else
               dblFator = dblFator * rs!FatorAcumulacao
           End If
           rs.MoveNext
       Loop

    fncAgrupaFator = dblFator

    rs.Close
    Set rs = Nothing
    End Function

    Como o exemplo pode servir para outros membros, coloquei no repositório de exemplos.
    https://www.maximoaccess.com/t28208-multiplicar-valores-numa-consulta-agrupar
    Baixe lá o ficheiro e teste.
    Abraço
    avatar
    rafamaga
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 26/04/2012

    Multiplicacao de valores no mesmo campo Empty teste das função

    Mensagem  rafamaga 17/10/2016, 18:13

    Muito obrigado pela resposta!

    O formulário roda mas não consigo copiar os resultados para comparar se estão corretos, dá erro ‘2450’, a consulta não fecha, abre o depurador e não consigo fazer nada.
    Algumas observações também merecem ser feitas, mas nada que diminua o excelente trabalho feito.

    1 - Realmente, perde um pouco da dinâmica/perfomance do banco de dados.
    2 – Tem como eu chamar a função “fncAgrupaFator” através da consulta e armazenar o valor em cada registro sem precisar rodar o formulário? Isto manteria a dinâmica da consulta.

    3 – O código colado no post está com erro de digitação onde lê-se:
    Set rs = CurrentDb.OpenRecordset(strSql,
    Deveria ser:
    Set rs = CurrentDb.OpenRecordset(strSql,Cool
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    Multiplicacao de valores no mesmo campo Empty Re: Multiplicacao de valores no mesmo campo

    Mensagem  Alvaro Teixeira 17/10/2016, 20:51

    Olá Rafael,
    Estava subreposição, já retirei.
    Estou a minimizar, assim já pode copiar.
    Também adicionei uma consulta criar tabela.
    Se pretende retirar o form, tem que passar as variaveis (datas limite) para a consulta e codigo.

    Eu pessoalmente não gravava os valores, calculava quando necessario, até pela questão dos limites das datas.
    Agora se for um volume grande de dados, considere não processar osa dados todos de uma só vez.
    Fica a sugestão.
    Baixe de novo o exemplo.
    Abraço
    avatar
    rafamaga
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 26/04/2012

    Multiplicacao de valores no mesmo campo Empty Realizando testes...

    Mensagem  rafamaga 20/10/2016, 12:01

    Estou realizando testes no banco de dados original, mas novamente muito obrigado.....
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    Multiplicacao de valores no mesmo campo Empty Re: Multiplicacao de valores no mesmo campo

    Mensagem  Alvaro Teixeira 31/3/2017, 23:50

    Olá Rafael,
    Como ficou a situação.
    Os.utilizadores do forum merecem e agradecem o retorno.
    Abraço

    Conteúdo patrocinado


    Multiplicacao de valores no mesmo campo Empty Re: Multiplicacao de valores no mesmo campo

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 16:18