Olá a todos,
Solicito o vosso auxilio, pois já pesquisei aqui no fórum e em outras fontes mas não obtive nenhum exemplo adaptável à minha realidade.
Contudo, eu gostaria de saber se é possível não premitir voltar a premir a caixa de verificação (Sim/Não) depois de premida, esta ação atualiza a saída do stock, nomeadamento no Frm_Venda_Itens. Eu utilizo este código para executar essa ação:
Private Sub Atualizar_Stock_AfterUpdate()
If Atualizar_Stock = True Then
If MsgBox("Confirma a quantidade de saída deste produto em Stock?", vbYesNo, "Aviso") = vbYes Then
If IsNull(Me.Quantidade) Or Me.Quantidade = 0 Then
MsgBox "Informe a quantidade de saída no Stock!", vbCritical, "Atenção!"
Atualizar_Stock = False
Me.Quantidade.SetFocus
Exit Sub
End If
Dim cnn As New ADODB.Connection
Dim rs1 As ADODB.Recordset
Set cnn = CurrentProject.Connection
'Abre a conexão com o registo
Set rs1 = New ADODB.Recordset
rs1.CursorType = adOpenKeyset
rs1.LockType = adLockOptimistic
'Abre a Tabela_Produtos
rs1.Open "TB_Registo_Produtos", cnn, , , adCmdTable
'Compara o código do produto entre as tabelas Produtos e a tabela para entradas de produtos.
rs1.Find "IDProduto=" & Me.IDProduto, 0, adSearchForward, 1
If Not rs1.EOF Then
rs1("Stock") = rs1("Stock") - Me.Quantidade
If rs1("Stock") < 0 Then
MsgBox "Quantidade não disponível. O Stock atual é de " & rs1("Stock") + Me.Quantidade & " produtos", vbExclamation, "Atenção!"
Exit Sub
Else
If rs1("Stock") < rs1("Stock_mínimo") Then
MsgBox "Stock atual deste produto é inferior ao stock mínimo, proceda à reposição do mesmo. Stock mínimo: " & rs1("Stock_mínimo"), vbExclamation, "Atenção" '-rs1 ("Stock") & " produtos(s)", vbExclamation, "Atenção!"
rs1.Update
MsgBox "Stock atual: " & rs1("Stock") & " produtos", vbExclamation, "Atenção!"
Exit Sub
Else
rs1.Update
MsgBox "Stock atual: " & rs1("Stock") & " produtos", vbExclamation, "Atenção!"
End If
End If
rs1.Close
cnn.Close
Set cnn = Nothing
Set rs1 = Nothing
Else
End If
End If
End If
End Sub
Uma vez premida a caixa de verificação continua ativa, portanto é possivel realizar a rotina supracitada várias vezes. Ainda relacionado com esta situação o botão de eliminar a linha não retorna a quantidade do produto selecionada na linha em stock.
Desde já agradeço
Melhores cumprimentos,
Simão Correia
Solicito o vosso auxilio, pois já pesquisei aqui no fórum e em outras fontes mas não obtive nenhum exemplo adaptável à minha realidade.
Contudo, eu gostaria de saber se é possível não premitir voltar a premir a caixa de verificação (Sim/Não) depois de premida, esta ação atualiza a saída do stock, nomeadamento no Frm_Venda_Itens. Eu utilizo este código para executar essa ação:
Private Sub Atualizar_Stock_AfterUpdate()
If Atualizar_Stock = True Then
If MsgBox("Confirma a quantidade de saída deste produto em Stock?", vbYesNo, "Aviso") = vbYes Then
If IsNull(Me.Quantidade) Or Me.Quantidade = 0 Then
MsgBox "Informe a quantidade de saída no Stock!", vbCritical, "Atenção!"
Atualizar_Stock = False
Me.Quantidade.SetFocus
Exit Sub
End If
Dim cnn As New ADODB.Connection
Dim rs1 As ADODB.Recordset
Set cnn = CurrentProject.Connection
'Abre a conexão com o registo
Set rs1 = New ADODB.Recordset
rs1.CursorType = adOpenKeyset
rs1.LockType = adLockOptimistic
'Abre a Tabela_Produtos
rs1.Open "TB_Registo_Produtos", cnn, , , adCmdTable
'Compara o código do produto entre as tabelas Produtos e a tabela para entradas de produtos.
rs1.Find "IDProduto=" & Me.IDProduto, 0, adSearchForward, 1
If Not rs1.EOF Then
rs1("Stock") = rs1("Stock") - Me.Quantidade
If rs1("Stock") < 0 Then
MsgBox "Quantidade não disponível. O Stock atual é de " & rs1("Stock") + Me.Quantidade & " produtos", vbExclamation, "Atenção!"
Exit Sub
Else
If rs1("Stock") < rs1("Stock_mínimo") Then
MsgBox "Stock atual deste produto é inferior ao stock mínimo, proceda à reposição do mesmo. Stock mínimo: " & rs1("Stock_mínimo"), vbExclamation, "Atenção" '-rs1 ("Stock") & " produtos(s)", vbExclamation, "Atenção!"
rs1.Update
MsgBox "Stock atual: " & rs1("Stock") & " produtos", vbExclamation, "Atenção!"
Exit Sub
Else
rs1.Update
MsgBox "Stock atual: " & rs1("Stock") & " produtos", vbExclamation, "Atenção!"
End If
End If
rs1.Close
cnn.Close
Set cnn = Nothing
Set rs1 = Nothing
Else
End If
End If
End If
End Sub
Uma vez premida a caixa de verificação continua ativa, portanto é possivel realizar a rotina supracitada várias vezes. Ainda relacionado com esta situação o botão de eliminar a linha não retorna a quantidade do produto selecionada na linha em stock.
Desde já agradeço
Melhores cumprimentos,
Simão Correia