MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    Dúvida em código VBA para atualização e inserção de estoque

    Compartilhe

    camila_santino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 13
    Registrado : 11/08/2011

    Dúvida em código VBA para atualização e inserção de estoque

    Mensagem  camila_santino em Sex 16 Maio 2014, 01:10

    Boa noite! Estou com um problema no meu código VBA e não consigo descobrir aonde, vocês poderiam me ajudar?! Fiz um código VBA para atualizar e/ou inserir a quantidade de estoque, ele funciona até bem, mas quando se coloca compras grandes alguns registros anteriores são zerados. Não consegui descobrir o porque...
    *** Tbm tenho a tabela de venda mas ainda nem comecei a testar porque a de compra está dando este problema.
    Abaixo vão as os campos das tabelas (colocarei só os campos em questão pra ser mais suscinta), algumas sobre o programinha que estou desenvolvendo e as versões de software. Não vou postar agora o arquivo porque minha net está muito ruim por causa da chuva (pelo menos acho que é isso), mas se precisar arranjo um jeito.

    Office 2013; Windows 8.1 64b

    TblProduto
    ID
    CodBarras
    CodEmpresa
    NmProduto

    TblDetProduto
    ID
    IDProduto
    IDTamanho
    IDCor
    QtdEstoque
    QtdMin

    TblCompra
    ID
    NtFiscal
    IDEmpresa

    TblDetCompra
    ID
    IDCompra
    CodEmpresa
    IDProduto
    IDTamanho
    IDCor
    Qtd

    Código VBA de Estoque:

    Sub AtualizaProdutoEntrada()

    Dim strSQL As String

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim cn As String
    Dim Criteria As Integer
    Dim cs
    cs = DMax("ID", "TblCompra")
    cn = "SELECT IDProduto, IDTamanho, IDCor, Qtd FROM TblDetCompra WHERE IDCompra=" & cs

    Set db = CurrentDb
    Set rs = db.OpenRecordset(cn, dbOpenDynaset)

    Do Until rs.EOF

    Criteria = Nz(DCount("ID", "TblDetProduto", "IDProduto=" & rs("IDProduto") & " AND IDTamanho=" & rs("IDTamanho") & " AND IDCor=" & _
    rs("IDCor")), 0)

    If Criteria = 0 Then

    strSQL = "INSERT INTO TblDetProduto ( IDProduto, IDTamanho, IDCor, QtdEstoque )" & _
    "VALUES(" & _
    rs("IDProduto") & ",'" & _
    rs("IDTamanho") & "','" & _
    rs("IDCor") & "','" & _
    rs("Qtd") & "')"
    db.Execute strSQL

    Else

    strSQL = "UPDATE TblDetProduto SET TblDetProduto.QtdEstoque =" & _
    "[TblDetProduto].[QtdEstoque]+" & rs("Qtd") & " WHERE IDProduto=" & rs("IDProduto") & " AND IDTamanho=" & _
    rs("IDTamanho") & " AND IDCor=" & _
    rs("IDCor") & ";"
    db.Execute strSQL

    End If

    rs.MoveNext
    Loop

    AtualizaProdutoEntrada_Exit:
    On Error Resume Next

    rs.Close
    db.Close
    Set rs = Nothing
    Set db = Nothing
    Exit Sub

    AtualizaProdutoEntrada_Err:
    MsgBox err.Description, vbCritical, "ERRO!"
    Resume AtualizaProdutoEntrada_Exit

    End Sub

    Agradeço desde já!
    Camila Santos

    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1095
    Registrado : 21/01/2012

    Re: Dúvida em código VBA para atualização e inserção de estoque

    Mensagem  Cláudio Más em Sab 17 Maio 2014, 05:30

    Talvez o uso da função Nz() resolva:

    strSQL = "UPDATE TblDetProduto SET TblDetProduto.QtdEstoque =" & _
    "Nz([TblDetProduto].[QtdEstoque])+" & Nz(rs("Qtd")) & " WHERE IDProduto=" & rs("IDProduto") & " AND IDTamanho=" & _
    rs("IDTamanho") & " AND IDCor=" & _
    rs("IDCor") & ";"

    camila_santino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 13
    Registrado : 11/08/2011

    Re: Dúvida em código VBA para atualização e inserção de estoque

    Mensagem  camila_santino em Dom 18 Maio 2014, 00:57

    Obrigado, Cláudio! vou tentar hoje pra ver se funciona e te retorno.

    camila_santino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 13
    Registrado : 11/08/2011

    Re: Dúvida em código VBA para atualização e inserção de estoque

    Mensagem  camila_santino em Dom 18 Maio 2014, 04:29

    Ok... Deu certo nos Testes que eu fiz, mas quando fui realmente inserir os dados, olhei na tabela só pra desencargo e o erro continua...  Crying or Very sad 

    camila_santino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 13
    Registrado : 11/08/2011

    Re: Dúvida em código VBA para atualização e inserção de estoque

    Mensagem  camila_santino em Dom 18 Maio 2014, 05:21

    Aqui vai o arquivo, se alguém conseguir...  Crying or Very sad
    Anexos
    banco.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (835 Kb) Baixado 25 vez(es)

    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1095
    Registrado : 21/01/2012

    Re: Dúvida em código VBA para atualização e inserção de estoque

    Mensagem  Cláudio Más em Seg 19 Maio 2014, 05:34

    Camila, eu rodei a sub AtualizaProdutoEntrada(), e a tabela TblDetProduto não apresentou nenhum registro zerado.

    camila_santino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 13
    Registrado : 11/08/2011

    Re: Dúvida em código VBA para atualização e inserção de estoque

    Mensagem  camila_santino em Seg 19 Maio 2014, 13:13

    Pequenas compras o código roda legal, ou compras grandes com poucos itens duferentes. O problema é só quando eu coloco uma compra de mais de 40 itens diferentes. Você viu a compra da kafka? foi quando a inseri que deu o problema.

    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1095
    Registrado : 21/01/2012

    Re: Dúvida em código VBA para atualização e inserção de estoque

    Mensagem  Cláudio Más em Seg 19 Maio 2014, 14:45

    Vi sim, mas ainda não estou percebendo o problema, não tem nenhum registro zerado.

    camila_santino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 13
    Registrado : 11/08/2011

    Re: Dúvida em código VBA para atualização e inserção de estoque

    Mensagem  camila_santino em Ter 20 Maio 2014, 15:26

    Cláudio, tenta fazer uma compra com muitos produtos diferentes, não necessariamente com quantidades grandes. Descobri que o erro só acontece assim, só muda os primeiros registros, e só quando a quantidade é 1. Esquisito... Quando coloco poucos tipos de produtos, tudo fica tranquilo, mas quando a compra tem vários, acontece o erro com os primeiros registros da tabela. Vou fazer um exemplo e mandar sem a correção. É que já tô meio desesperançada, aí simplesmente vou lá na tabela e conserto à mão mesmo.

    rdrck
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 983
    Registrado : 11/03/2014

    Re: Dúvida em código VBA para atualização e inserção de estoque

    Mensagem  rdrck em Ter 20 Maio 2014, 17:23

    Olá Camila,
    A quantidade do produto em estoque está no campo QtdMin da TblDetProduto?
    Se sim, e com a licença do colega Cláudio, pode tentar o cógido abaixo no evento "Ao Sair" de seu campo de saída do form de compras (quantidade comprada):

    DoCmd.RunSQL ("update TblDetProduto set QtdMin = (QtdMin+(Formulários![SEUFORMULÁRIO]![SEUCAMPOSAIDA])) where TblDetProduto.ID=(Formulários![SEUFORMULÁRIO]![CÓDIGO]);")

    Se quiser colocar no campo de saída (form de vendas) é só substituir, no código, a soma (+) pela subtração (-).
    Veja se funciona.


    .................................................................................
    Meu Programa / OS:
    Access 2007 - Windows 7.

    camila_santino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 13
    Registrado : 11/08/2011

    Re: Dúvida em código VBA para atualização e inserção de estoque

    Mensagem  camila_santino em Qua 28 Maio 2014, 13:22

    Oi!
    Desculpa a demora gente.
    rdrck, é QtdEstoque, mas vou tentar colocar esse código trocando os nomes.
    Dessa vez eu não ajeitei a tabela manualmente como no primeiro que enviei, tô mandando com o erro.

    rdrck
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 983
    Registrado : 11/03/2014

    Re: Dúvida em código VBA para atualização e inserção de estoque

    Mensagem  rdrck em Qua 28 Maio 2014, 13:27

    Ok. Aguardamos.


    .................................................................................
    Meu Programa / OS:
    Access 2007 - Windows 7.

    camila_santino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 13
    Registrado : 11/08/2011

    Re: Dúvida em código VBA para atualização e inserção de estoque

    Mensagem  camila_santino em Qua 28 Maio 2014, 13:37

    Não tô conseguindo enviar por aqui então vai o link do arquivo no dropbox:

    [Você precisa estar registrado e conectado para ver este link.]

    aqui a screen shot:
    [Você precisa estar registrado e conectado para ver esta imagem.]

    rdrck
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 983
    Registrado : 11/03/2014

    Re: Dúvida em código VBA para atualização e inserção de estoque

    Mensagem  rdrck em Qua 28 Maio 2014, 13:46

    Meu Access 2007 não reconheceu o formato.


    .................................................................................
    Meu Programa / OS:
    Access 2007 - Windows 7.

    camila_santino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 13
    Registrado : 11/08/2011

    Re: Dúvida em código VBA para atualização e inserção de estoque

    Mensagem  camila_santino em Sex 30 Maio 2014, 01:58

    oi, não consegui converter o arquivo para 2000-2003. disse que usava recursos que só podiam ser usados no tipo de arquivo atual.

    camila_santino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 13
    Registrado : 11/08/2011

    Re: Dúvida em código VBA para atualização e inserção de estoque

    Mensagem  camila_santino em Seg 02 Jun 2014, 15:07

    Ninguém conseguiu descobrir o que tem de errado no código?!

    camila_santino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 13
    Registrado : 11/08/2011

    Re: Dúvida em código VBA para atualização e inserção de estoque

    Mensagem  camila_santino em Sex 06 Jun 2014, 00:27

    Existe alguma outra forma de fazer o que estou tentando?! Talvez mudar completamente o código seja melhor do que insistir neste...

      Data/hora atual: Ter 06 Dez 2016, 05:43