Porque no funciona mi inventario access

Inventario en access con 3 tablas 1 maestra 1entrada 1salida en la tabla maestra sólo se muestra el resultado cuando hay un valor en la tabla entrada y salida, si pongo 10 entradas y no pongo salidas en la tabla maestra no figura nada

3 respuestas

Respuesta
2

Vamos a suponer que tienes una tabla Productos, con, por ejemplo, IdProducto(clave), Nombre,..., Existencias,... Otra tabla Entradas, con Idproducto,,,,,, Cantidad,,,,, y otra tabla Salidas, con IdProducto,..., Cantidad,...

Si es en Access no necesitas relacionarlas, basta con que en el formulario de Entradas, en el evento Después de actualizar del cuadro de texto Cantidad pongas

Docmd.runsql"update Productos set existencias=nz([existencias])+cantidad where Idproducto=" & me.idproducto & ""

Y en el formulario Salidas, en el evento Después de actualizar del cuadro de texto Cantidad

Docmd.runsql"update Productos set existencias=existencias-cantidad where Idproducto=" & me.idproducto & ""

Asi, cuando anotes una cantidad de entrada se la suma a las existencias que haya en la tabla Productos, aunque no hubiera existencias anteriores( por eso lo de Nz). Y cuando des salida a una cantidad se las resta.

Me.idproducto &"" me marca error ahí

¿Tengo qué relacionar las tablas?

Esta es la ventana Relaciones de la base del ejemplo siguiente. Puedes ver que la tabla Productos no está relacionada con la tabla DetalleCompra, que tiene un campo Idproducto, que es la que voy a usar. Supongamos que tengo una tabla Productos como

Fíjate en las existencias del Té Dharamsala

Tengo un formulario Compras con un subformulario DetalleCompra donde voy a elegir el producto que compro, aunque el tuyo no tiene porque ser igual, pero la instrucción es la misma

Cuando elijo el producto( aunque en realidad estoy eligiendo el Idproducto, pero tengo esa columna como oculta), lo primero que hace es ponerme en el control Antes( aunque no haría falta pero siempre es información) las existencias( si las hay) de ese producto en el almacén. Anoto la cantidad que compro( puedes ver que el cursor todavía está en el control Cantidad. Cuando pulso Enter

En Después me pone las nuevas existencias y además de otras cosas me modifica las existencias de ese producto en particular en la tabla Productos como puedes ver

Y la instrucción es 

DoCmd.RunSQL "update productos set existencias=despues where idproducto=" & Me.IdProducto & ""

aunque si no quieres los cuadros Antes y Después sería

DoCmd.RunSQL "update productos set existencias=existencias-cantidad where idproducto=" & Me.IdProducto & ""

De todas formas, si quieres, repito, si quieres, mándame un mensaje a [email protected] y te mando el ejemplo. Si lo haces, en el asunto del mensaje pon tu alias Juan Mondino, ya que si no sé quien me escribe ni los abro.

Respuesta
1

Creo que no preguntaba cómo registrar las entradas, salidas y actualizar saldos, sino como relacionar para cuando hay entradas y el producto NO tiene salidas estando en tablas independientes aparezca el nombre del producto de la tabla maestra. Algo como:

Tablas

Consulta Saldos

Observe el cuadro resaltado el producto id=3 tiene 2 entradas pero NO tiene salidas pero aparece la información del registro. Por esto Gustavo (un saludo) tiene razón el problema.

Ahora, si es para actualizar en un formulario el ejemplo que le dan es suficiente, pero para que 2 formularios, con 1 basta solo es definir el tipo si es entrada o salida. Personalmente no utilizo sino 1 tabla par registrar el movimiento del inventario, diferenciando por tipo, 1=Entrada 2=Salida y después mediante SQL registro el movimiento y consulto agrupando etc.

Respuesta

Hay que ver como tenés hecho los joins, pero seguramente esté ahí el problema

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas