Consulta con los valores de un cuadro combinado en Access

Necesito que me ayuden con una consulta en Access.

Tengo una tabla con dos campos: Id y DescProd

Y en el formulario que tiene como origen de datos esta tabla, el campo DescProd es un cuadro combinado que al desplegarse muestra cuatro opciones para elegir: tabla, bins, pallets y madera.
Lo que necesito es crear una consulta que me muestre una columna por cada una de estas cuatro opciones del cuadro combinado y que los nulos se muestren como ceros para que las columnas se muestren aunque no tengan datos.

Respuesta
2

No sé si he entendido la pregunta. La verdad, me parece rara, pero si tengo el formulario basado en la tabla1

Con la tabla Creo una consulta, donde te pongo en Zoom el valor del campo ColumnaA, los demás es sólo cambiar lo de Tabla, por Madera, etc

Al abrirla

Si, es algo así como un inventario. En realidad es un poco más complejo,
no quise exponer todo porque me parecía muy abuso de mi parte pedir tanta ayuda.
Tengo las siguientes tablas: TEmb (Embalajes), TProductos (Productos), TEntradas (Entradas), TSalidas (Salidas)
En un mismo reporte tengo que mostrar las seis columnas de las Entradas con una columna adicional por columna
con los valores acumulados, y también las seis coolumnas de las Salidas con una columna adicional descontando el Stock.
También una sola columna de fecha que contenga las fechas de Entradas y Salidas, en la misma columna, en orden ascendente.
Y dos columnas más, una con el numero de IdProd (Entradas) y otra con el numero de Cer (Salidas), ambas en orden ascendente.
Espero haberme explicado. Te adjunto más imágenes para que tengas una idea más cabal de como tiene que quedar el informe.

Estas son las imágenes de las tablas.

Vamos a ver, no le veo sentido a las tablas y mucho menos a la unión de ellas que presentas. Voy a seguir tu imagen de la consulta

Mira, si tengo la tabla Productos

Y tengo el formulario Entradas, que guiándome por la fecha que pones en la consulta fíjate en el primer registro

El día 2 entra 900 pallets y como no había ninguno, tu stock en el ¿almacen? es de 900. Hasta ahí correcto.

Vamos con las salidas

Según la consulta, ese mismo día 2 salen 300. Pues si tenías 900 y han salido 300 los que te quedan en el ¿almacén? Son 600. Volvemos al de entradas. Si el día 03/03/2020 te entran 950, tu stock en el almacén serán de 600 que había + 950 que entran=1550 que es lo que refleja el segundo registro de Entradas. Va mostrando el stock actual en cada momento.

Por otro lado, si el CodProducto de los pallets es 1059( según Tproductos), es imposible que también sea 1060, 1061, etc.

En vez de Codproducto( un número que no dice nada), es preferible usar el nombre del producto, que de eso se acuerda uno siempre.

De todas formas, no sé si te han dicho que lo hagas así, ya que es mucho más sencillo usar únicamente una tabla Entradas/Salidas, como las anteriores y donde se le añadiría un campo, por ejemplo, Concepto, que recoja si es entrada o Salida, y por tanto un único formulario, donde se vería mejor como va "arrastrando el Stock en función de si es entrada o salida. Luego para el informe( si lo quieres como has puesto en la imagen) con hacer una consulta con Inner Join solucionado

1 respuesta más de otro experto

Respuesta
1

¿Los productos son fijos? Es decir, son solo esos 4. porque podrías hacer la consulta con valores "en duro"

hay una función llamada IsNull() cuya función es confirmar si un campo es NULL y podrias combinarlo con un Switch() para que te muestre cero cuando sea NULL

Lo que no tengo claro, es que tabla graba los datos finales, donde quieres hacer la consulta para el resultado

Quizás si muestras la estructura de las tablas y lo que deseas hacer, te pueda ayudar un poco más

Antes que nada muchísimas Gracias por contestar David, y disculpas si no me explique bien, como veras soy Novato en Access.

Los Productos en realidad son 6 y si, son fijos, aunque quizás en el futuro se deba agregar algún otro.

Aun me falta información para ayudarte

Yo soy experto en consultas SQL y BD, y tratare de ayudarte desde esa perspectiva. AUnque maneje access hace mucho tiempo

Entiendo que quieres hacer un reporte, actualmente con 6 productos

¿Ese reporte es algún resultado de un inventario o algo asi?

La primera tabla son los productos, ¿eso se entiende y la segunda que es?

Veo que tienes un proceso, un ID y un embalaje pero no se bien que quieres lograr

me comentas un poco más...

Si, es algo así como un inventario. En realidad es un poco más complejo,
no quise exponer todo porque me parecía muy abuso de mi parte pedir tanta ayuda.
Tengo las siguientes tablas: TEmb (Embalajes), TProductos (Productos), TEntradas (Entradas), TSalidas (Salidas)
En un mismo reporte tengo que mostrar las seis columnas de las Entradas con una columna adicional por columna
con los valores acumulados, y también las seis coolumnas de las Salidas con una columna adicional descontando el Stock.
También una sola columna de fecha que contenga las fechas de Entradas y Salidas, en la misma columna, en orden ascendente.
Y dos columnas más, una con el numero de IdProd (Entradas) y otra con el numero de Cer (Salidas), ambas en orden ascendente.
Espero haberme explicado. Te adjunto más imágenes para que tengas una idea más cabal de como tiene que quedar el informe.

Estas son las imágenes de las tablas.

Veo un poco complicada tu estructura de BD

Primero te recomiendo definir cuál será tu campo llave en la tabla productos, y si la relación entre producto y embalaje es 1=1, te recomiendo eliminar embalaje y reemplaza el código de embalaje por la descripción.

El comentario de la llave se basa en la existencia, en algunas tablas del campo ID y en otras del código Producto

Si logras igualar los campos en todas las tablas, puedes hacer una consulta compuesta, que relacione tu tabla de entradas y de salidas con el producto. Para poder construir el reporte que necesitas

Quizás mi impresión sea errónea, no estoy seguro al estar utilizando Access pero desde un modelo entidad relación no se ve claro

Desde mi perspectiva, podrías tener una tabla productos, con un ID_producto de llave, un codigo_producto de identificación y una descripción del producto

Por otra parte, tu entrada de inventario puede ser la combinación de un ID_entrada, ID_producto, Fecha_Entrada, Cantidad_Entrada etc, etc

Con respecto a la salida, podrias manejar un Id_Salida, Id_Producto, Fecha_Salida, Cantidad_Salida

Y el reporte final, estaría compuesto entre la tabla producto y las entradas y salidas relacionados por ID de producto y a su vez relacionados por la fecha del movimiento

Ejemplo:

select p.id_producto, p.codigo_producto, p.descripcion, e.fecha_entrada, e.cantidad_entrada, s.fecha_salida, s.cantidad_salida

from productos p

inner join entradas e on e.id_producto=p.id_producto

inner join salidas s on s.id_producto=p.id_producto 

where e.fecha_entrada=s.fecha_salida

Esto te presenta una tabla general con todo combinado, si tuvieras solo 1 despacho y solo 1 entrada por producto, de esta manera ya tendrias la información, solo cruzando por las fechas, pero si tienes N entradas o N salidas, esta consulta se debe combinar con un group by en una subconsulta.

Trato de darte algunas ideas, solo espero no te haya complicado un poco más

No te preocupes David, soy muy novato, y esto obviamente me supera, creo que por ahora lo dejare aquí, de todas formas fuiste muy amable, agradezco mucho tu tiempo y tu experiencia.

Suerte.. ojala consigas la respuesta que buscas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas