Stock en access

Tengo problemas con la creación de un formulario diseñado para control de stock.
He armado una base con 3 tablas
1- MATERIALES : con los campos id, descripción y cantidad
2- INGRESOS : con los campos descripción (vinculada con el id de la anterior), cantidad y fecha
3 SALIDAS : los mismos campos que en ingreso.
Lo que quisiera hacer funcionar es que al ingresar o sacar materiales estos se sumen o resten del campo (cantidad) de la tabla MATERIALES. O sea, por ejemplo: al ingresar por de un material por en el formulario INGRESO no sólo se agregue a la tabla ingreso para saber la fecha y la cantidad ingresada, sino que también se sumen los por del material por a la tabla MATERIALES, añadiendo a la cantidad existente los nuevos materiales.
Intentè resolverlo con un código visual de  UPDATE
usando UPDATE (MATERIALES.CANTIDAD) SET (MATERIALES.CANTIDAD) + [Formulario]![Ingreso]![cantidad]
Pero no me funcionó, entiendo que esta es una forma posible y también se podría hacer mediante consulta, pero no logro desentrañarlo
Respuesta
1
Yo tengo algo parecido pero no tengo los totales en una tabla, sino en una consulta y de ella tiro de todo lo demás que necesito.
Tablas:
MATERIALES: Descripción (nombre)
INGRESOS: Descripción, Cantidad, Fecha
SALIDAS: Descripción, Cantidad, Fecha
Ingreso y Salidas buscan el campo por Descripción de Materiales, y crea relaciones entre las tres tablas para no tener problemas.
Consultas:
C_INGRESOS: Dependiendo la la consulta Ingresos, campos Descripción y Cantidad (a este campo le haces que agrupe en Suma)
C_SALIDAS: Dependiendo la la consulta Salidas, campos Descripción y Cantidad (a este campo le haces que agrupe en Suma)
C_ALMACEN: Relaccion de Materiales, C_Ingresos y C_Almacen. Campos Descripcion (Almacen), Suma_Cantidad (C_Ingresos), Suma_cantidad (C_Salidas) y Totales: Restas el campo de ingresos el Salidas.
Cone esta última tabla es con la que juego para todo. Sin necesidad de tener que actualizar una tabla, pero si así lo quisieras, con esta consulta lo mejor seria crear una tabla nueva, anexar o actualizar una ya existente.

3 respuestas más de otros expertos

Respuesta
1
Lo primero sería crear una "Consulta de Actualización", de la siguiente manera:
Te vas a "Consultas" - "Crear una consulta en vista de diseño"
Seleccionás la tabla "Materiales" [Agregar] y [Carrar]
En la barra de menú te vas a "Consulta" y seleccionás "Consulta de Actualización"
Agregás a la consulta los campos "Descripción" y "Cantidad"
En "Actualizar a:" del campo "Cantidad" poné:
[cantidad]+Formularios![NombreFormIngresos]!Cantidad
Y en "Criterios" del campo "Descripción" poné:
Como [Formularios]![NombreFormIngresos]![Descripción]
Guardás la consulta con el nombre que quieras
___________________________________________________________________
Ahora lo que hay que hacer es que la consulta se ejecute en el momento que quieras, puede ser con un botón, al cerrar el formulario "Ingresos" o como quieras. Si quisieras hacerlo al cerrar:
La forma más fácil para hacer esto es con macros. Así que te vas a "Macros" - "Nuevo"
En acción ponés "Abrir Consulta" y completás donde dice "Nombre de la consulta" con el nombre que le pusiste a la consulta de de actualización.
Si querés podes agregar un mensaje de aviso de que los materiales se han ingresado:
En el renglón siguiente, en "Acción" ponés: "CuadroMSJ"
En "Mensaje" ponés lo que quieras que diga el mensaje. "Bip" en ` Sí ´ si querés un sonido cuando aparece el mensaje. En "Tipo" elegís el dibujito del mensaje. Y en "Título" obviamente el titulo del mensaje.
Bueno, guardás la macro con el nombre que quieras...
_________________________________________________________________
Te vas al formulario de ingresos y en el evento "Al cerrar" ponés:
Docmd. RunMacro "NombreDeMacro"
_________________________________________________________________
Tené en cuenta que este ejemplo busca en los campos en el registro activo, por lo tanto sólo te permitirá hacer los ingresos de a uno por vez (El formulario tendría que estar con la propiedad "Entrada de datos" en `Sí´)... Si necesitás hacer varios a la vez y no encontrás cómo hacerlo, avisame. No te lo explico ahora porque estoy llegando tarde al laburo...
Respuesta
1
Mal, muy mal ;-), en serio, debes hacerlo así:
1- MATERIALES : con los campos id, descripción
2- Movimientos : con los campos descripción (vinculada con el id de la anterior), cantidad, fecha y Tipo
Tipo tiene 2 valores (1=entradas, -1=salidas), para saber el stock lo único que tienes que hacer en una consulta ligando materiales y movimientos y sumando el campo cantidad*tipo.
Lo que tu pretendes te acabará dando muchos problemas.
Lo resolví con una consulta con las tablas que tenía, por ahora ha funcionado bien. En caso de que me genere inconvenientes volveré a preguntar.
Agradezco tu tiempo y el interés.
Saludos.
Respuesta
Intentar ayudarte sin ver la base de datos me resulta complicado, espero que lo entiendas. Siento no poder serte de ayuda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas