Quien me puede ayudar con este código para la elaboración de este programa en access
Siguiendo el Ejemplo del Experto Necckito.
elabore un formulario que me calcula la existencia de dicho producto. La pregunta es como hago para que me valide si un articulo no se encuentra en inventario en mi caso particular coloque la función Else pero me toma el primer registro y me calcula la existencia, pero cuando ingreso el segundo articulo no me arroja la existencia, no se que hacer te envió el código:
Private Sub CantS_AfterUpdate()
'Declaramos las variables
Dim vProd As Long
Dim vCant As Integer, vCantStock As Integer
Dim rst As DAO.Recordset
Dim rs 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
On Error Resume Next
'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 10000 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
'En caso que no haya Existencia en Inventario utilizar el Else'
Else
MsgBox ("¡No Existe Articulo en Inventario!"), vbCritical, "Billares Orbital Beer"
'MsgBox ("¡Intente Nuevamente por favor!"), vbCritical, "Billares Orbital Beer"'
On Error Resume Next
Me.IdProd.SetFocus
'DoCmd.RunCommand acCmdDeleteRecord '
'DoCmd.GoToRecord , , acGoTo, IdProd'
'Borramos la cantidad introducida
Me.CantS.Value = Null
Exit Do
End If
.MoveNext
Loop
End With
'Cerramos conexiones y liberamos memoria
rst.Close
Set rst = Nothing
End Sub