bollywood actresses hair loss hair rehab london contact number cheap hair extensions brazilian curly hair with closure hair extension fails human hair wigs black ponytail hairstyles 2018 sunny hair extensions uk hair extensions remy hair extensions weft koko one piece hair extensions clip hair
Atualização de estoque de produtos listados no subformulário

... Assinatura do site por 1 ano + Kit MontaRibbons + 3 Livros em PDF + Diversas Revistas (pdf) de brinde, por apenas R$100,00
(
podendo parcelar em até 10 vezes no cartão de crédito)...

Clique aqui e obtenha mais detalhes do nosso kit completo e de como comprar.


Atualização de estoque de produtos listados no subformulário

Antes de iniciar sua leitura, clique aqui e cadastre-se para receber comunicados sobre novos artigos.

Usuário Alves:

Boa noite!

Estou com a seguinte situação: - tenho um formulário de vendas, com um subformulário de produtos. Quando atualizo a quantidade, ele automaticamente atualiza a tabela de produtos, dando baixa da quantidade e exibindo a seguinte mensagem:

"Você está prestes a atualizar uma linha(s). Depois de clicar em sim, você não poderá utilizar o comando Desfazer para reverter as alterações. Tem certeza de que deseja atualizar esses registros?"

O código que estou utilizando é este:

Private Sub QUANTIDADE_AfterUpdate()
Dim strSql as string
strSql = "UPDATE TbPRODUTOS set ESTOQUE= "
strSql = strSql & "(ESTOQUE+(FORMULÁRIOS![fmlCOMPRAS]![TbITENSCOMPRA subformulário]![QUANTIDADE])) "
strSql = strSql & "WHERE TbPRODUTOS.CODIGO="
strSql = strSql & "(FORMULÁRIOS![fmlCOMPRAS]![TbITENSCOMPRA subformulário]![CODIGOPRODUTO]);"
DoCmd.RunSQL (strSql)
End Sub

Gostaria de atualizar todos os itens de venda ao clicar em salvar e também, eliminar a mensagem exibida. Já tentei colocar esse comando atribuído em um botão, porém ele só atualiza a linha que está selecionada no subformulário.  Existe algum comando que faça selecionar todo o subformulário e atualizar todos os dados de uma só vez?

Abraços.

Suporte:

Alves, utilize o recordsetclone para percorrer os registros do subformulário. No evento Ao clicar do botão, coloque:

Private Sub btAtualizaEstoque_Click()
Dim rs As DAO.Recordset
Set rs = Forms!frmCompras![TbITENSCOMPRA subformulários].Form.RecordsetClone
rs.MoveFirst
Do While Not rs.EOF
    currentdb.execute "UPDATE tblprodutos SET Estoque = Estoque - " & rs!quantidade & _
    " WHERE Codigo = " & rs!CodigoProduto & ";"
    rs.MoveNext
Loop
rs.Close
Set rs = Nothing
msgbox "Estoque atualizado....", vbinformation,"Aviso"
End Sub

Nota 1: o currentdb.execute não exibe a mensagem.

Nota 2: faça um backup da sua tabela antes dos testes.

Usuário Alves:

Avelino, funcionou perfeitamente!!

Obrigado!

 


 

 


3 comentário(s)

Guto   16/03/2018 09:48:22

Ola Avelino
Posso usar esse procedimento em um form baseado em uma consulta?
obrigado

Avelino Sampaio   19/03/2018 00:48:01

Guto,

pode sim mas observe no código, que o campo Estoque será atualizado direto no tabela.

Sucesso!


Guto   20/03/2018 08:33:32

Nao tem problema
É para uma banca. Os itens sao temporarios, a revista vem fica um tempo e o que nao vendeu é devolvido, nao ficando mais em estoque.
É apenas para quando é pedido um reforço, ou devoluçao parcial, por isso a consulta.
Grato Mestre


Envie seu comentário: