Código para resta de stock en una base de datos

Espero que me puedan ayudar, soy novato en esto de la programación en access, tengo un problema, el cual consiste en lo siguiente: tengo una base de datos para facturación, y ya tengo las tablas y los formularios correspondioentes, al parecer todo esta bien, el problema que tengo es que necesito actualizar los campos de un Stock, es decir que cuando haga una venta, pueda hacer el desuento correspondiente en el stock, pero necesariamente necesito hacerlo mediante un botón, esto con el fin de asegurar que no se cometan errores al capturar los datos. Ahora bien tengo un código, pero con este código solo puedo actualizar los adtos de el ultimo producto facturado, es decir si en una factura van más de un producto, solo puedo actualizar el stock de uno de ellos, necesito saber como puedo actualizar todos los productos que estén en la factura, el codfigo es el siguiente:
Sub Comando18_Click()
On Error GoTo Err_Comando18_Click
Dim rsARTICULOS As Recordset
Dim ingUnidadesEnExistencia As Long
'Verificamos que se introdusca un articulo
If Me.Codigo = "" Or IsNull(Me.Codigo) Then
MsgBox "No Se Ha Seleccionado Ningun Articulo", vbCritical
Exit Sub
End If
'Verificamos que se introdusca una Cantidad
If Me.Cantidad = "" Or IsNull(Me.Cantidad) Then
MsgBox "No Se Ha Introducido La Cantidad", vbCritical
Exit Sub
End If
'Abrimos la Tabla Inventario
Set rsARTICULOS = CurrentDb.OpenRecordset("ARTICULOS", dbopenTable)
rsARTICULOS.Index = "PrimaryKey"
rsARTICULOS.Seek "=", Me.Codigo
'Verificamos si el articulo solicitado existe
If Not rsARTICULOS.NoMatch Then
ingUnidadesEnExistencia = rsARTICULOS.Fields("UnidadesEnExistencia")
'Obtenemos el stock actual
rsARTICULOS.Edit
'Descontamos del stock
rsARTICULOS.Fields("UnidadesEnExistencia") = ingUnidadesEnExistencia - Me.Cantidad
rsARTICULOS.Update
Exit Sub
End If
End Sub

1 Respuesta

Respuesta
1
El detalle de esa venta donde se almacena, ¿cómo se llama la tabla? Tienes que utiliar una sentencia que haga un bucle es decir algo así:
do while not [nombretabla].EOF
Aquí metes lo del edit y restas el stock
[nombretabla].movenext
loop
Si tienes alguna duda mandame el mdb completo y veremos que puedo hacer.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas