Quien me ayuda para calcular la existencia de un producto en access 2010

Como esta(s), estoy realizando un programita de venta de productos, mi pregunta es: como hago para calcular si hay existencia disponible en un producto que seleccione y me muestre un mensaje de advertencia que no hay disponibilida o de lo contrario me muestre que hay cantidad disponible # 5

Tengo un formulario que se llama mesas, y un subformulario que se llama ventas

en el subformulario Ventas esta compuesto:

1. Código

2. Articulo

3.precio_publico

4. Cant_vendidas

tome el ejemplo del experto Neckkito y copie el código de el y no doy no se que estará malo:

Private Sub Cant_Vendidas_AfterUpdate()
'Declaramos las variables
Dim varticulo As Long
Dim vCant_vendidas As Integer, Cant_vendidas As Integer
Dim rst As DAO.Recordset
'Cogemos el identificador del producto
varticulo = Nz(Me.CÓDIGO.Value, 0)
'Cogemos la cantidad introducida
vCant_vendidas = Nz(Me.Cant_vendidas.Value, 0)
'Si no hubiera cantidad introducida salimos del proceso
If vCant_vendidas = 0 Then Exit Sub
'Creamos el recordset
Set rst = CurrentDb.OpenRecordset("Stock", 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("código").Value = varticulo Then
'Cogemos el stock existente
vCant_vendidas = .Fields("Stock").Value
'Le restamos la cantidad que estamos sacando
Cant_vendidas = vCant_vendidas - stock
Select Case vCant_vendidas
'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 " & stock + vCant_vendidas & _
" unidades", vbCritical, "SIN STOCK"
'Borramos la cantidad introducida
Me.Cant_vendidas.Value = Null
'Es necesario hacer un rebote de foco para volver a situar
'el enfoque en CantS
Me.CÓDIGO.SetFocus
Me.Cant_vendidas.SetFocus
Exit Do
'Si queda stock, pero es inferior a 10 unidades, lanza un aviso
Case Is <= 100
MsgBox "¡Atención! El stock que quedará de este producto es de " _
& vCant_vendidas & " 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