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]Atualização Estoque por loop em formulário continuo.

    Compartilhe
    avatar
    biligo
    Avançado
    Avançado

    Respeito às Regras 100%

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

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

    Mensagem  biligo em Seg 03 Abr 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
    Loop Fail.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (67 Kb) Baixado 11 vez(es)
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

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

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

    Mensagem  FabioPaes em Seg 03 Abr 2017, 22:14

    Olá, ja deu uma olhada nesse tópico aqui:
    [Você precisa estar registrado e conectado para ver este link.]
    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!
    avatar
    biligo
    Avançado
    Avançado

    Respeito às Regras 100%

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

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

    Mensagem  biligo em Ter 04 Abr 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.
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

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

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

    Mensagem  FabioPaes em Ter 04 Abr 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!
    avatar
    biligo
    Avançado
    Avançado

    Respeito às Regras 100%

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

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

    Mensagem  biligo em Ter 04 Abr 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
    Loop Fail.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (66 Kb) Baixado 5 vez(es)
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

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

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

    Mensagem  FabioPaes em Qua 05 Abr 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!
    avatar
    biligo
    Avançado
    Avançado

    Respeito às Regras 100%

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

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

    Mensagem  biligo em Qua 05 Abr 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!
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

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

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

    Mensagem  FabioPaes em Qua 05 Abr 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!

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