Como valido un articulo sino esta en inventario

Hola como estas.

Tengo dos formulario:

1. Precios. Este tiene los campo código-articulo, vunitario, total

2. Productos. Los campo son: código, articulo y cantidad entrada.

Y tengo el formulario principal que es: Salidas mi pregunta es como hago que cuando selecciono en la lista del campo código el articulo e ingrese la cantidad a vender me aroge un mensaje que articulo no se encentra en inventario el código que tengo es:

Private Sub CantS_AfterUpdate()
'Declaramos las variables
Dim vProd As Long
Dim vCant As Integer, vCantStock As Integer
Dim rst As DAO.Recordset
'Cogemos el identificador del producto
vProd = Nz(Me.IdProd.Value, 0)
'Cogemos la cantidad introducida
vCant = Nz(Me.CantS.Value, 0)
'Si no hubiera cantidad introducida salimos del proceso
If vCant = 0 Then Exit Sub
'Creamos el recordset
Set rst = CurrentDb.OpenRecordset("CStock", dbOpenSnapshot)
With rst
'Nos situamos en el primer registro
.MoveFirst
'Iniciamos el recorrido de registros hasta encontrar la referencia
'con la que estamos trabajando en el formulario
Do Until .EOF
'Cuando lo encontramos...
If .Fields("Id").Value = vProd Then
'Cogemos el stock existente
vCantStock = .Fields("Stock").Value
'Le restamos la cantidad que estamos sacando
vCantStock = vCantStock - vCant
Select Case vCantStock
'Si el resultado es negativo no permitimos sacar esa cantidad
Case Is < 0
MsgBox "No hay stock suficiente de este producto" & vbCrLf & vbCrLf _
& "El stock actual del producto es " & vCantStock + vCant & _
" unidades", vbCritical, "SIN STOCK"
'Borramos la cantidad introducida
Me.CantS.Value = Null
'Es necesario hacer un rebote de foco para volver a situar
'el enfoque en CantS
Me.IdProd.SetFocus
Me.CantS.SetFocus
Exit Do
'Si queda stock, pero es inferior a 10 unidades, lanza un aviso
Case Is <= 10000
MsgBox "¡Atención! El stock que quedará de este producto es de " _
& vCantStock & " unidades", vbInformation, "STOCK CRÍTICO"
Exit Do
End Select
End If
.MoveNext
Loop
End With
'Cerramos conexiones y liberamos memoria
rst.Close
Set rst = Nothing
End Sub

Añade tu respuesta

Haz clic para o