Mira yo te recomiendo que antes de agregar salidas a tu Grilla te haga la comparación de cuantos tienes, si es igual a O que no te agregue nada te marque un error. Si existen entonces te los pueda agregar a tu grilla. y con respecto a agregar ventas y restarlos solo tendrias que agregar una linea mas y con eso te funciona tu programa.
te quedaria mas o menos asi
Código:
For fila = 1 To Grid1.Rows - 1
CnN.Execute "INSERT INTO ventas(Cliente, CantidadVendida, Detalle, Precio , PrecioTotal, NumeroFactura, Codigo, Fecha, Unidad) VALUES ('" & _
Grid1.TextMatrix(fila, 0) & "', '" & Grid1.TextMatrix(fila, 1) & "', '" & _
Grid1.TextMatrix(fila, 2) & "', '" & Grid1.TextMatrix(fila, 3) & "', '" & _
Grid1.TextMatrix(fila, 4) & "', '" & Grid1.TextMatrix(fila, 5) & "', '" & Grid1.TextMatrix(fila, 6) & "', '" & Grid1.TextMatrix(fila, 7) & "', '" & Grid1.TextMatrix(fila, 8) & "')"
'Aqui restamos al stock
Cnn.Execute "UPDATE stock Set cantidad = cantidad - " & val(Grid1.TextMatrix(fila, 1)) & " WHERE codigo = '" & Grid1.TextMatrix(fila, 6) & "'"
Next fila
Cada vez que recorra el ciclo agrega los datos a tu tabla ventas pero a la vez te actualiza el stock de tu articulo.
por eso te decia antes de agregarlo a tu grilla primero revisa si hay en existencias agregas si no hay no agregas. asi de facil
Espero te sirva cualquier cosa aqui estamos. buen dia