Cómo hago un sistema de traslado de material de una bodega a otra bodega en access

Lo que necesito es hacer un formulario que se ingresé el material que se va trasladar junto con la cantidad de una bodega a otra y que se reste de la bodega saliente y se sume a la bodega de destino...

Respuesta

Otro ejemplo. Si tengo una tabla Bodegas con unas existencias(para comodidad le pongo a todas lo mismo)

Y tengo una tabla Movimientos con la que hago un formulario. Da igual si es único o continuo, pero continuo se ve mejor.

Escribo una fecha y selecciono una bodega saliente

En el momento que selecciono una bodega, en este caso Norte en AntesS me pone las existencias que tiene hasta ese momento.

El cursor se va a cantidad. Escribo una (puedes ver que el cursor aún está en Cantidad). En el momento que pulso Enter

Me pone las nuevas existencias de la bodega saliente, me actualiza la tabla Bodegas. En el combinado Bodega Entrante sólo me muestra las bodegas distintas de la saliente. Y en el momento que selecciono una

en Eentrante me pone las nuevas existencias de la bodega entrante. Y si seguimos

El código de los diferentes eventos es

Private Sub BodegaEntrante_AfterUpdate()
AntesE = DLookup("existencias", "bodegas", "nombrebodega='" & Me.BodegaEntrante & "'")
EEntrante = AntesE + Cantidad
DoCmd.RunSQL "update bodegas set existencias=antese+cantidad where nombrebodega='" & Me.BodegaEntrante & "'"
End Sub
Private Sub BodegaSaliente_AfterUpdate()
AntesS = DLookup("existencias", "bodegas", "nombrebodega='" & Me.BodegaSaliente & "'")
Cantidad.SetFocus
End Sub
Private Sub Cantidad_AfterUpdate()
DoCmd.RunCommand acCmdSaveRecord
ESaliente = AntesS - Cantidad
DoCmd.RunSQL "update bodegas set existencias=existencias-" & Me.Cantidad & " where nombrebodega='" & Me.BodegaSaliente & "'"
BodegaEntrante.SetFocus
End Sub

Pero puedes hacerlo de mil formas distintas

2 respuestas más de otros expertos

Respuesta

No me parece complicado, los materiales ya están creados en la aplicación.

Un formulario que puede tener el mínimo de campos (el ID y la cantidad a trasvasar) al que se puede añadir la descripción para mayor claridad.

Los elementos a trasvasar se pueden seleccionar mediante un combo que toma sus datos de la tabla con los materiales (un clic y añade un registro al formulario) solo se necesita poner la cantidad y continuar con la selección.

Tiene que existir un documento (al estilo de una venta) que formaliza el trasvase de material (se genera mediante el antes mencionado formulario) y que al formalizarlo tiene que hacer varios procesos:

.- El primero será verificar que en el destino 'también' existe y si no lo hay se crea (o crean), simples copias del registro con el campo cantidad a cero.

.- Solucionado el punto anterior, se recorre la tabla (el formulario) modifican el almacén destino añadiendo las cantidades a trasvasar a la vez que se decrementan en el almacén de origen.

Se presupone que ambos  almacenes comparten el ID y descripción de los elementos que lo componen y si no lo comparten será necesaria una tabla que los interrelacione (el ID [aaa] de un almacén se corresponde con el ID [bbb] del otro almacén).

Si el proceso te parece adecuado y tienes alguna duda, publícala para poder ampliar los detalles que necesites.

La idea general es elementalmente sencilla:

Un/ese traspaso de mercancía = venta de mercancía

Un almacén se la cede (vende) al otro almacén y el que recibe la mercancía se la 'compra' al otro almacén.

La diferencia es que vende sin beneficio y si hay gastos (pueden estar en diferentes ubicaciones lo que exige transporte) habrá que consensuar quien los soporta.

Si tienes en la actual aplicación algún proceso de venta, solo se ha de crear al otro almacén como cliente y el almacén que la recibe a quien se la cede como otro proveedor mas.

El contable de la empresa seria el mas indicado para guiar el proceso pues en definitiva el es quien tendrá que cuadrar los asientos.

Respuesta

Puede utilizar un tabla temporal para registrar los ítems a trasladar. Para registrar puede recorrer la tabla temporal con DAO. Se deben considerar cuando el material no existe en la bodega que recibe, en este caso se hace un INSERT INTO, en caso contrario un UPDATE aumentando la existencia actual con la cantidad trasladada. En la bodega desde donde se traslada se hace un UPDATE pero restando. Por ejemplo observe este formulario

Esta es una idea

Se ve excelente ese ejemplo me ayudas 

Andri, le ayudaría con gusto, pero estoy un poco ocupado enseñando Access con PostgreSQL en la web, por ahora envíeme su base de datos a [email protected] y miro que puedo hacer

Andri tenga presente que se debe llevar en una tabla el movimiento de entradas y salidas. Algo como:

Le aclaro esto es por material

Me comparte el ejemplo

Andri lo lamento no le sirve porque la base de datos backend está en PostgreSQL alojada en la nube

Hagamos una cosa, envíeme su base datos y con base en ésta trato de elaborarle el proceso.

El problema que tengo es que la base no es mía es de la empresa a la que trabajo y estoy intentando hacer eso de los traslados 

Prepare una base de datos con información ficticia, en caso contrario le puede colaborar otra persona.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas