Ir ao conteúdo
  • Cadastre-se

Soma em subformularios


EdSouza13

Posts recomendados

Olá pessoal, gostaria de solicitar uma ajudinha em uma situação que me deparei no access. Não sou um usuario avançado mas tenho uma ideia de como ele funciona.

Bem, onde criei um pequeno um bd pra controlar simplesmente a entrada e saida de materiais no estoque.

Tabela: [itens] = CodItem (chave primaria) - Descriçao - QtdeEstoque - EstoqueMIN

Tabela: [Tipos] = CodTipo (chave primaria) - Descrição

Tabela: [Movimentação] = CodItem - DataMov - Doc - Codtipo - QtdeMov

Os relacionamentos estão corretos em 1 pra muitos.

Criei um formulario [items] com um subformulario [Movimentacao] mas agora nao sei como fazer com que a cada vez que eu digitar uma valor no campo: qtdemov esse valor seja somado ou subtraido do estoque.

Exemplo: eu localizo um item e a movimentacao do estoque e registrada no subformulario.

Agradeço desde já,

Ate.

Link para o comentário
Compartilhar em outros sites

Souza,

Faz um boooom tempo que eu não trabalho com Access, mas o que você vai ter que fazer é colocar um procedimento em Basic para atualizar a tua tabela de [itens] quando você atualizar o movimento.

você pode fazer o seguinte: criar um procedimento no evento "Antes de atualizar" do formulário [Movimentacao] para atualizar a quantidade em estoque.

Por que no evento "Antes de atualizar"?? Para que você possa, antes de atualizar, verificar se a quantidade que você vai alterar é válida: você não pode retirar 5 unidades de um estoque que só tem 4 unidades! Então você precisa checar isso antes.

Se a quantidade a alterar for válida, aí você tem que fazer a atualização da tabela [itens] "no braço".

O código abaixo (com adaptações) foi utilizado por mim há muito tempo, então não sei se ainda funciona nas versões atuais de Access, mas pode ser que ele te ajude:

Dim dbs As Database, rst As Recordset
Dim strCriterio As Variant

Set dbs = CurrentDb
strCriterio = "[CodItem] = " & Me![CodItem]
Set rst = dbs.OpenRecordset("Itens", dbOpenDynaset)

rst.FindFirst strCriterio
If rst.NoMatch Then
MsgBox "Item inexistente."
Else
With rst
.Edit ' Edita o registro.
!QtdeEstoque = !QtdeEstoque + Me![QtdeMov]
.UPDATE ' Salva alterações.
End With
End If
dbs.Close

OBS: no código acima não há o teste para verificar se a quantidade a ser atualizada é válida.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!