Obtener el saldo acumulado en una CONSULTA DE ACCESS

En la foto adjunta necesito colocar la fórmula para que el campo Saldo me muestre la información respectiva, considerando que debe acumular el valor del registro anterior, así los valores para el campo saldo serian

100

20

17

¿Alguna idea?

Gracias !

3 respuestas

Respuesta
4

Vamos a suponer que la tabla origen de ese formulario se llama Kardex, y vamos a suponer que tiene un campo IdMov autonumérico o numérico.

En vista diseño diseño del formulario, en las propiedades del cuadro de texto Ingreso puedes poner

Docmd. Runcommand accmdsaverecord

Saldo=nz(dsum("ingreso","cardex","idmov<=" & me.idmov &""))-nz(Dsum("salida","kardez","idmov<=" & me.idmov & ""))

Luego pon lo mismo en el evento Después de actualizar del cuadro de texto Salida.

Así, cuando hagas el primer registro, sea ingreso o salida, sumará todos los ingresos anteriores y le restará todas las salidas hasta ese momento. Luego en el siguiente registro, hace lo mismo, y así, per sécula...

Amigo, ¿hay forma de obtener ese calculo en la consulta y no en un formulario o informe? Es decir, si yo necesitara solo que eso se vea en una consulta, ¿cómo podría hacer para que el campo reciba una instrucción así? ¿Tienes alguna idea? Gracias por la ayuda que me estas brindando !

Es sencillo. Para abreviar te pongo sólo Ingreso y Salida.

Haz una consulta como la de la imagen

En la línea de Saldo tienes que poner

Saldo: (select sum(nz([ingreso])-nz([salida]))from [Movimientos] as temp where [temp].[idMov]<=[movimientos].[idMov])

y te quedará

¡Gracias! ICUE eres un genio !!!!!! muy agradecido por tu ayuda :)

Icue, Buenas tardes

Quería molestarte con una pregunta respecto del tema de KARDEX, con tu ayuda pude obtener en mi consulta el "Saldo acumulado" para un producto determinado. ¿Cómo puedo hacer para obtener (bajo la misma modalidad) el Stock Valorizado para determinado producto?

Cabe indicar que la tabla que guarda todos los movimientos, tiene un campo llamado [PUnitario], donde guardo el precio al que fue comprado cada item, este precio solo se ingresa "Al momento de ingresar algún producto". ¿Cómo puedo obtener en un campo la diferencia de precios?

He estado revisando algunas formas pero me complico demasiado, espero puedas tener el tiempo de ayudarme con esto.

En la figura, tengo (01) ingreso con precio de 15.10, luego efectúe 3 salidas. Bajo el hipotético que ingrese algunos itemas más a un precio de 18.21, ¿los siguientes registros deberían poder tomar el precio promedio entre los valores (15.10) y (18.21) y así sucesivamente ... Como hago eso?

Gracias y buen fin de semana !

Vamos por partes

1º Con respecto a lo de Saldo por producto, es exactamente igual. Si tienes la tabla con

Y haces la consulta

Verás que te va arrastrando los saldos.  El campos Saldo es

Saldo: (select sum(nz([entrada])-nz([salida]))from [Movimientos] as temp where [temp].[idMov]<=[movimientos].[idMov] and [temp].[producto]=[movimientos].[producto])

Cuando en un determinado momento quisieras saber las existencias de un producto podrías usar, por ejemplo:

ExistenciasActuales=dlast("saldo","consulta1","producto='" & me.producto & "'")

Si lo haces desde un formulario.

Una vez dicho esto, te diría que, personalmente, no lo haría así.

Cuando se empieza un "negocio" existe una relación valorada, o sea, unas existencias iniciales con unos precios. Luego, vamos a suponer que tienes el primer cliente. O bien anotas sus datos en la tabla Clientes por si te compra más veces y no tener que estar anotándolos cada vez que te compre, o bien lo anotas en la tabla Venta. En la tabla DetalleVenta irían los diferentes productos que le vendes y una vez que anotas la cantidad, yo le diría que lo restara de la tabla Existencias. En caso de que a un proveedor le compraras algo, lo mismo, cuando anotaras la cantidad le diría que se la sumara a Existencias. Así siempre las tendrías actualizadas y lo mismo con los precios( le diría que multiplicara las existencias anteriores por su precio más las nuevas por su precio y que hiciera el promedio). La ventaja, entre otras es que le puedes poner un stock mínimo y que al alcanzarlo le mande un email al proveedor para que reponga lo que necesites.

¡Gracias! Voy a poner en practica tu sugerencia por que preciso tener ese dato del promedio ponderado (precios), gracias por tu tiempo !!!

Respuesta
2

[url=http://www.accessaplicaciones.com/ejemplos.html#sq03] Crear un campo con suma continua en una consulta [/url]

¡Gracias!, no soy muy experto en access y estoy buscando una forma más sencilla pensaba que existía una fórmula para jalar al campo, pero veo que es más complejo, agradezco tu gentil respuesta, estoy revisando el link que mandaste

Respuesta

Yo quisiera sacar el subtotal en una cuenta con debe y haber. Pude sacar el saldo total con: =Suma(nz([Debe])-nz([Haber]))=Suma(nz([Debe])-nz([Haber])) pero para sacar el subtotal se me esta complicando. Agradezco pronta respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas