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

    [Resolvido]Atualização do Preço Médio

    joaomarcosferlinibento
    joaomarcosferlinibento
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 223
    Registrado : 23/02/2011

    [Resolvido]Atualização do Preço Médio Empty [Resolvido]Atualização do Preço Médio

    Mensagem  joaomarcosferlinibento 19/8/2014, 12:32

    Bom dia!

    Criei um sistema para atualização do preço médio de produtos para formar preço de venda. Porém eu fiz para cada produto e o usuário deverá clicar no botão para atualizar o referido valor.

    Porém, também quero deixar disponibilizado para atualizar automaticamente o preço médio de todos os produtos cadastrados de uma vez só.

    Alguém pode dar um "Help"?

    Obrigado!
    Anexos
    [Resolvido]Atualização do Preço Médio AttachmentSisGin_teste.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (162 Kb) Baixado 26 vez(es)
    joaomarcosferlinibento
    joaomarcosferlinibento
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 223
    Registrado : 23/02/2011

    [Resolvido]Atualização do Preço Médio Empty Re: [Resolvido]Atualização do Preço Médio

    Mensagem  joaomarcosferlinibento 20/8/2014, 12:41

    Eu pensei numa lógica desta maneira:

    Código:
    Dim QtdTotalProd As String, Contador As Integer
    Dim bytIni As Byte
    Dim Totalprodatual As String

    QtdTotalProd = Me.QtdProd
    bytIni = 1
    Totalprodatual = 0

        If MsgBox("Deseja Cálcular o Preço Médio de todos os Produtos? (Esta Ação não poderá ser revertida!)", vbYesNo, "Cálculo de Preço Médio para Todos os Produtos!") = vbYes Then
            For Contador = bytIni To Val(Me.QtdProd)
                'Vaipara o primeiro Registro
                DoCmd.RunMacro "IrParaPrimeiroRegisro"
                'Cálcula o Preço Médio
                Me.PreçoMédio = Me.PreçoMédioAtual
                Totalprodatual = Totalprodatual + 1
                DoCmd.RunMacro "PararMacro"
                DoCmd.RunMacro "IrParaPróximoRegistro"
                Contador = Contador + 1
                DoCmd.RunMacro "SalvarRegistro"
            Next Contador
           
            MsgBox "Foram atualizados " & Totalprodatual & " produtos!", vbInformation, "Ops!"
           
            Else
            MsgBox "Nenhum produto foi atualizado!", vbInformation, "Cálculo de Preço Médio para Todos os Produtos!"
        End If
    End Sub

    Só que tenho dois subformulários que são atualizados somente depois que carregam para trazer o preço médio. Este código ESTÁ EXECUTANDO, porém só atualiza o primeiro produto.

    Creio que para funcionar, deve esperar os formulários atualizarem, para dar continuação na ação.

    Como eu faço para "pausar" a execução até que os formulários carreguem antes de prosseguir?
    joaomarcosferlinibento
    joaomarcosferlinibento
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 223
    Registrado : 23/02/2011

    [Resolvido]Atualização do Preço Médio Empty Re: [Resolvido]Atualização do Preço Médio

    Mensagem  joaomarcosferlinibento 20/8/2014, 13:10


    Achei um erro, porém agora tem outro...

    Ele não atualiza o último registro!

    Código:
    Dim QtdTotalProd As String, Contador As Integer
    Dim bytIni As Byte
    Dim Totalprodatual As String

    QtdTotalProd = Me.QtdProd
    bytIni = 1
    Totalprodatual = 0

        If MsgBox("Deseja Cálcular o Preço Médio de todos os Produtos? (Esta Ação não poderá ser revertida!)", vbYesNo, "Cálculo de Preço Médio para Todos os Produtos!") = vbYes Then
            For Contador = bytIni To Val(QtdTotalProd)
                'Vaipara o primeiro Registro
                If Contador = 1 Then
                DoCmd.RunMacro "IrParaPrimeiroRegisro"
                Else
                'Cálcula o Preço Médio
                Me.PreçoMédio = Me.PreçoMédioAtual
                'Conta a quantidade de produtos atualizados
                Totalprodatual = Totalprodatual + 1
                'DoCmd.RunMacro "PararMacro"
                DoCmd.RunMacro "IrParaPróximoRegistro"
                'DoCmd.RunMacro "SalvarRegistro"
                End If
            Next Contador
            MsgBox "Foram atualizados " & Totalprodatual & " produtos!", vbInformation, "Ops!"
           
            Else
            MsgBox "Nenhum produto foi atualizado!", vbInformation, "Cálculo de Preço Médio para Todos os Produtos!"
        End If
    End Sub
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]Atualização do Preço Médio Empty Re: [Resolvido]Atualização do Preço Médio

    Mensagem  Assis 20/8/2014, 13:45

    Boa tarde João

    Teste
    Mas tem que ser um form continuo


    http://maximoaccess.forumeiros.com/t16531-percorrer-registros-do-subform-para-atualizar#124503


    .................................................................................
    *** Só sei que nada sei ***
    joaomarcosferlinibento
    joaomarcosferlinibento
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 223
    Registrado : 23/02/2011

    [Resolvido]Atualização do Preço Médio Empty Re: [Resolvido]Atualização do Preço Médio

    Mensagem  joaomarcosferlinibento 20/8/2014, 15:47


    Então, no meu caso, não pode ser formulário contínuo, pois tenho dois subformulários que tem dados que são atualizados conforme muda o produto e para que o cálculo do preço médio seja efetuado. Mas escrevendo este post, CONSEGUI RESOLVER, corrigindo a lógica e assim ele calcula o preço médio.

    Código:
     If MsgBox("Deseja Cálcular o Preço Médio de todos os Produtos? (Esta Ação não poderá ser revertida!)", vbYesNo, "Cálculo de Preço Médio para Todos os Produtos!") = vbYes Then
            For Contador = bytIni To Val(QtdTotalProd)
                'Vaipara o primeiro Registro
                If Contador = 1 Then
                DoCmd.RunMacro "IrParaPrimeiroRegisro"
                'Cálcula o Preço Médio
                Me.PreçoMédio = Me.PreçoMédioAtual
                'Conta a quantidade de produtos atualizados
                Totalprodatual = Totalprodatual + 1
                'DoCmd.RunMacro "PararMacro"
                DoCmd.RunMacro "IrParaPróximoRegistro"
                DoCmd.RunMacro "SalvarRegistro"
                Else
                'Cálcula o Preço Médio
                Me.PreçoMédio = Me.PreçoMédioAtual
                'Conta a quantidade de produtos atualizados
                Totalprodatual = Totalprodatual + 1
                'DoCmd.RunMacro "PararMacro"
                DoCmd.RunMacro "IrParaPróximoRegistro"
                DoCmd.RunMacro "SalvarRegistro"
                End If
            Next 'Contador
            MsgBox "Foram atualizados " & Totalprodatual & " produtos!", vbInformation, "Ops!"
           
            Else
            MsgBox "Nenhum produto foi atualizado!", vbInformation, "Cálculo de Preço Médio para Todos os Produtos!"
        End If
    End Sub

    A explicação para código, é a seguinte:

    Ao iniciar a execução do código, no formulário existe um campo chamado "QtdProd" que conta a quantidade de produtos que existem cadastrados. A validação do Loop, inicia do 1 até a o valor do campo "QtdProd". (Ex.: "Se tiver 100 produtos cadastrados, ele executará o código 100 vezes!")

    Ao passar pelo "For" (Laço de repetição), temos então os cálculos.

    1º - Confere a quantidade de compras do produto selecionado.
    2º - Soma o preço unitário do produto selecionado.
    3º - Calcula o preço unitário (Soma total do preço unitário DIVIDIDO pela quantidade comprada).

    A cada nova repetição, o código de repete, formando o preço médio do produto.

    As MACROS: IrParaPrimeiroRegistro, IrParaPróximoRegistro e SalvarRegistro, é para começar no primeiro produto, e avançar conforme for atualizando os preços médios dos produtos.


    Conteúdo patrocinado


    [Resolvido]Atualização do Preço Médio Empty Re: [Resolvido]Atualização do Preço Médio

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/4/2024, 00:59