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 Estoque por loop em formulário continuo.

    biligo
    biligo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 228
    Registrado : 10/04/2014

    [Resolvido]Atualização Estoque por loop em formulário continuo. Empty [Resolvido]Atualização Estoque por loop em formulário continuo.

    Mensagem  biligo 3/4/2017, 15:42

    Boas galera,

    Estou tentando montar um esquema de estoque com os valores sendo atualizados em uma tabela. Sei que existe diversos exemplos de sistema de estoque aqui no forum mais se puderem me ajudar
    com este agradeço.
    Os dados são provenientes principalmente de três tabelas, tblOrdemCompraDetalhe que são os registros dos produtos que irão entrar no estoque, tblProduto que são os produtos selecionados na compra e a tblEstoque
    que irá armazenar os valores de entrada.
    A questão é que após concluir uma compra meu estoque não é atualizado de maneira correta. Se não existir o produto na tblEstoque não é adicionado nada, se faço 2 compras os produtos vão sendo adicionados e atualizados
    na tblEstoque de forma erronia e o principal erro é que o loop não carrega depois do primeiro registro, ou seja, se fiz uma compra com três itens apenas o primeiro será verificado no Estoque.

    Estou disponibilizando o BD para melhor visualização do conteúdo pois sei que ficou um pouco confuso, mas acho que com a visualização do BD fique mais esclarecido
    Anexos
    [Resolvido]Atualização Estoque por loop em formulário continuo. AttachmentLoop Fail.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (67 Kb) Baixado 33 vez(es)
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Atualização Estoque por loop em formulário continuo. Empty Re: [Resolvido]Atualização Estoque por loop em formulário continuo.

    Mensagem  FabioPaes 3/4/2017, 22:14

    Olá, ja deu uma olhada nesse tópico aqui:
    https://www.maximoaccess.com/t27015-resolvidoerro-ao-dar-baixa-no-estoque
    Nele o usuário faz a venda, inserindo todos os produtos e no final, ao clicar em salvar... O comando realizar a baixa do estoque para cada produto digitado naquela venda, com as suas devidas quantidades. Talvez lhe ajude!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    biligo
    biligo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 228
    Registrado : 10/04/2014

    [Resolvido]Atualização Estoque por loop em formulário continuo. Empty Re: [Resolvido]Atualização Estoque por loop em formulário continuo.

    Mensagem  biligo 4/4/2017, 04:51

    Boas Fabio,

    Grato pelo encaminhamento.
    Acredito estar na direção correta mas ainda não esta sendo localizado os registros na tblEstoque.
    Segue a adaptação.

    Código:
    '---------------------------------------------------'
    ' Criado por Fabio Paes
    '---------------------------------------------------'
    Dim rsCompraDet As DAO.Recordset
    Dim rsEstoque As DAO.Recordset


    Set rsCompraDet = CurrentDb.OpenRecordset("SELECT tblOrdemCompraDetalhe.Produto, tblOrdemCompraDetalhe.Quantidade FROM tblOrdemCompraDetalhe Where tblOrdemCompraDetalhe.IdentOrdem = " & Me.IdOrdem & "")  ' Tabela onde as quantidades a dar Baixa Estoque
    'Percorre a Tabela de Origem dados
    Do While Not rsCompraDet.EOF
    'Seleciona o Produto na tabCadProduto e Atualiza o Estoque
    Set rsEstoque = CurrentDb.OpenRecordset("SELECT * FROM tblEstoque") ' Tabela que receberá os dados
    'Inicia a Gravação dos dados na Tb2
    'WHERE IdentProduto = " & rsCompraDet!Produto & "

    If rsEstoque("IdentProduto") = rsCompraDet!Produto Then

    rsEstoque.Edit
    rsEstoque("EstoqueAnterior") = rsEstoque("EstoqueAtual")
    rsEstoque("EstoqueAtual") = rsEstoque("EstoqueAtual") + rsCompraDet!Quantidade
    rsEstoque.Update
    rsCompraDet.MoveNext

    Else

    rsEstoque.AddNew
    rsEstoque("IdentProduto") = Me.IdProduto
    rsEstoque("EstoqueAnterior") = 0
    rsEstoque("EstoqueAtual") = Me.EstAdd
    rsEstoque.Update
    rsCompraDet.MoveNext

    End If

    Loop

    'Fecha as conexoes
    rsCompraDet.Close
    rsEstoque.Close

    Sempre me é adicionado produtos na tabela Estoque e sempre o primeiro da compra, o loop não percorre os campos apenas conta os registros.
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Atualização Estoque por loop em formulário continuo. Empty Re: [Resolvido]Atualização Estoque por loop em formulário continuo.

    Mensagem  FabioPaes 4/4/2017, 15:24

    Posta aqui com essa adaptação... E me fale em qual tabela devem ser add ou subtraído o estoque.


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    biligo
    biligo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 228
    Registrado : 10/04/2014

    [Resolvido]Atualização Estoque por loop em formulário continuo. Empty Re: [Resolvido]Atualização Estoque por loop em formulário continuo.

    Mensagem  biligo 4/4/2017, 21:28

    Fabio, boa tarde,

    Grato pela paciência. Não estou conseguindo adaptar o seu exemplo.
    A tabela final, tblEstoque receberá os valores diretamente da tblOrdemCompraDetalhe cuja chave seja igual a tblOrdemCompra.
    Preciso que o campo tblOrdemCompraDetalhe.Quantidade seja somado a tblEstoque.EstoqueAtual (Cujos produtos sejam iguais o que me é gerado erro)

    Outro erro é gerado porque só percorre os campos da tblOrdemCompraDetalhe e apenas o primeiro registro, ou seja, se efetuei uma compra com dois produtos
    na minha tblEstoque será criado duas vezes o primeiro produto da compra (O que não pode ser possível pois cada produto só pode existir 1x na tblEstoque) e o
    segundo item da compra desaparece.
    Anexos
    [Resolvido]Atualização Estoque por loop em formulário continuo. AttachmentLoop Fail.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (66 Kb) Baixado 16 vez(es)
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Atualização Estoque por loop em formulário continuo. Empty Re: [Resolvido]Atualização Estoque por loop em formulário continuo.

    Mensagem  FabioPaes 5/4/2017, 15:21

    Segue o Código para dar entrada no Estoque.
    Add um Botão extra, para nao misturar com seus código e dificultar seu entendimento.

    Código:

    '---------------------------------------------------'
    '              Criado por Fabio Paes                '
    '         em 05/04/2017 Para MaximoAccess
    '---------------------------------------------------'
    Dim rs, rsE As DAO.Recordset
    Dim F As Integer

    DoCmd.RunCommand acCmdSaveRecord
    'Abre uma consulta buscando todos os produtos lançados na ordem de compras atual.
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM tblOrdemCompraDetalhe WHERE IdentOrdem = " & Me.IdOrdem & "")

        Do While Not rs.EOF 'Irá repetir em quanto estiver registros na consulta feita anteriormente
        F = Nz(DCount("*", "tblEstoque", "IdentProduto = " & rs!Produto & ""), 0) 'Aqui eu realizo uma verificação para saber se o produto ja tem algum estoque
            If F > 0 Then 'Se ja tiver algum estoque, irei apenas atualizar o estoque
                Set rsE = CurrentDb.OpenRecordset("SELECT * FROM tblEstoque WHERE IdentProduto = " & rs!Produto & "")
                rsE.Edit
                rsE("EstoqueAnterior") = rsE!EstoqueAtual 'Coloco o estoque antigo no campo estoque anterior
                rsE("EstoqueAtual") = rsE!EstoqueAtual + rs!Quantidade 'Somo o estoque antigo + a qnt pedida
                rsE.Update
            Else 'Se não tiver estoque, terei que inserir o produto e lançar seu estoque
                Set rsE = CurrentDb.OpenRecordset("tblEstoque")
                rsE.AddNew 'Adiciono o registro na tabela e insiro os valores dos campos
                rsE("IdentProduto") = rs!Produto
                rsE("EstoqueAtual") = rs!Quantidade
                rsE.Update
            End If
        rs.MoveNext
        Loop

    'Ao final, finalizo todas as conexões abertas e limpo a memoria utilizada para armazenar as consultas
    rs.Close
    Set rs = Nothing
    rsE.Close
    Set rsE = Nothing
    MsgBox "Estoque Atualizado com Sucesso!!!", vbInformation, "Sucesso"



    Baixe Aqui:
    dropbox.com/s/vvlskfs08wc9m4w/Loop%20Fail%20Corrigido.zip


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    biligo
    biligo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 228
    Registrado : 10/04/2014

    [Resolvido]Atualização Estoque por loop em formulário continuo. Empty Re: [Resolvido]Atualização Estoque por loop em formulário continuo.

    Mensagem  biligo 5/4/2017, 16:56

    Boa tarde Fabio,

    Não poderia fazer melhor.
    Estava indo para uma direção totalmente diferente, que me faria dar voltas e voltas para chegar no mesmo lugar e você resolveu apenas com um If.

    Adicionei apenas um Recordset rsP; Set rsP = CurrentDb.OpenRecordset("SELECT tblProduto.Volume FROM tblProduto WHERE IdProduto = " & rs!Produto & "") para localizar o volume do produto, rsP!Volume, mas de resto ficou perfeito.

    Muito Obrigado!
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Atualização Estoque por loop em formulário continuo. Empty Re: [Resolvido]Atualização Estoque por loop em formulário continuo.

    Mensagem  FabioPaes 5/4/2017, 20:09

    Baca amigo!

    Grato pelo retorno amigo, até a próxima se Deus Quiser!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    Conteúdo patrocinado


    [Resolvido]Atualização Estoque por loop em formulário continuo. Empty Re: [Resolvido]Atualização Estoque por loop em formulário continuo.

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 21:57