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

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

Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 10x no Cartão de Crédito. 

Veja como comprar e saiba mais sobre o material oferecido,  clicando aqui.

Open v3

 


 

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!

 


 

 


4 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

Silvio   09/04/2019 17:37:29

Boa noite,

Tenho dois subformularios de uma unica tabela, no subformulario 1 eu tenho o campo chave de acesso da tabela nota fiscal, e no subformulario 2 eu tenho o campo nota fiscal da tabela nota fiscal, o qual é preenchido com os seis digitos da chave de acesso quando o campo chave de acesso e atualizado. Tenho um campo no formulario principal que conta a quantidade de notas fiscais é digitado no sistema.
Eu gostaria que quando fosse atualizado o campo chave de acesso os camposnota fiscal e quantidade de nota fiscal fossem atualizados automaticamente, sem a necessidade de eu digitar as teclas crtl+alt+f9, poderiam me ajudar


Envie seu comentário: