Mi consulta es referente a una planilla en Access que lleva el stock (más bien una lista de productos con precio de lista y de compra) y con la que saco presupuestos de venta de productos y alguna que otra consulta. Bien, lo que yo quisiera poder hacer es que cuando hago una venta poder descontar los artículos que vendo en un formulario, y así poder tener cada vez que hago un presupuesto (o una venta) el stock actualizado.
¿Se puede hacer?
Partimos de una tabla articulo con un campo Referencia (clave única) y un campo StockActual. Tenemos un formulario donde se introducen las ventas. Bien, yo el artículo lo tengo encapsulado en una clase CArticulo. Y tengo un método CambiaStock(Unid as integer) que disminuye o aumenta el stock del artículo dependiendo de si Unid es positivo o negativo. Bien, un usuario introduce una venta (los conceptos/artículos que van en esa venta se graban en la tabla conceptos). Al cerrar el formulario recorremos la tabla de conceptos y hacemos lo siguiente Dim Datos as database, RsConcepto as recordset dim Articulo as new CArticulo SEt datos=dbengine.workspaces(0).opendatabase("datos.mdb") set Rsconcepto=datos.openrecordset("SElect Referencia,UnidVendidas from Conceptos where NumVenta=" & [Nº de Venta Actual]) rsconcepto.movefirst while not rsconcepto.eof articulo.ref=rsconcepto!referencia articulo.cambiastock(-1*rsconcepto!unidvendidas) rsconcepto.movenext wend rsconcepto.close:set rsconcepto=nothing datos.close:set datos=nothing set Articulo=nothing Con esto hemos disminuido el stock de los artículos en la venta, pero surge el siguiente problema. Un usuario hace hoy una venta y damos de baja los artículos en el almacén. Pero mañana modifica esa venta (en vez de cinco unidades de un artículo son 12 por ejemplo). Si volvemos a dar de baja los artículos descuadramos el stock. Yo tomo la siguiente solución Cuando entra el usuario a modificar una venta, doy de alta de nuevo los artículos en el almacén (como dar de baja pero sin multiplicar por -1) y cuando cierro los vuelve a dar de baja, si no hay ningún cambio en la venta no pasa nada. Y si lo hay, automáticamente queda el almacén cuadrado da igual que modifique las unidades vendidas o que incluso borre una linea del albarán de ventas o introduzca una nueva.
La respuesta me ayudo a plantear una solución. Pero debo aclarar que no se mucho del código de Access, por lo que se me va a dificultar llevarla a cavo, pido perdón por no haber finalizado la pregunta en tiempo, pero desconocía el sistema, gracias por la ayuda y si no te molesta, me gustaría que me sugirieras un buen libro del cual poder aprender a programar en el código de Access, gracias