none
Datos duplicados en vez de campo nulo en una consulta de Access RRS feed

  • Pregunta

  • Buenos días,

    Estoy haciendo un inventario de stock con Access 2013, y tengo las tablas que corresponden a Productos; Entradas y Salidas, y he hecho consultas de las Entradas (con todos los registros entrantes), Salidas (con todos los registros salientes), Total Entrada (la agrupación de productos y suma de cantidades entrantes) Total salida (la agrupación de productos y suma de cantidades saliendo) y para averiguar el stock lo que hago es crear una nueva consulta Stock y resto las cantidades sumadas entrantes de la consulta Total entrada a las cantidades sumadas de la consulta Total Salida.

    El problema que tengo es si tengo un producto  A (cantidad entrada 100) y Salida de 50 me da correctamente 50 pero si añado un producto B con entrada 200 y SIN SALIDA me devuelve el valor de Salida del producto A(50) y me lo resta. No llego a hacer que me ponga un valor nulo he intentado con la función Nz pero no se muy bien donde ponerla como las consultas de totales Salida y Entrada son independientes seria en la consulta Stock: [Total Entrada]- (Nz([Total Salida])) pero los intentos que he hecho me devuelven lo mismo. He intentado también en los criterios poner =SiInm(EsNulo([Total Salida]);0;[Total Salida]) pero tampoco me funciona.

    Las tablas de Entrada y Salida están relacionadas a la de Producto pero independientes entre si.

    Producto Total Entrada    Total salida

    A               100                   50

    B               200                 (En vez de 0 o Nada me devuelve 50 de A)

    Gracias por vuestra ayuda

    lunes, 21 de marzo de 2016 9:28

Todas las respuestas

  • El Siinm te deberia de funcionar pero en vez de en la zona criterio ponlo como campo de la consulta, mas o menos así:

    CampoCalculado:SiInm(IsNull(Salidas.[Total Salida]);0;Salidas.[Total Salida])

    lunes, 21 de marzo de 2016 10:04
  • Gracias por tu respuesta lo he intentado pero no me funciona.

    He probado una combinación de 3 productos para ver lo que me devuelve.

    Lo que quiero obtener

    Producto  Total entrada  Total Salida   Stock

    A             100                  50               50

    B             200                 (no hay)        200

    C             500                  250             250

    Lo que me devuelve

    Producto  Total entrada  Total Salida     STOCK

    A             100                  50                50

    B             200                  50               150

    C             500                  50               450

    A             100                  250             -150

    B             200                  250              -50

    C             500                  250             250


    Lo que no entiendo es  porque por separado las consultas me devuelven los valores correctos y cuando hago las operaciones con ellas (total entradas y total salidas) se me duplican los resultados. No soy un usuario muy avanzado, y no entiendo porque me hace eso. Parece que percibe las operaciones como con registros diferentes y duplica las operaciones, como si a las 3 cantidades entradas tienes que operar por separado con los registros de salidas

    Como

    3 registros entrantes x 1registro de salida

    3 registros entrantes x 1registro de salida

     



                  

    lunes, 21 de marzo de 2016 11:24
  • El Sinm si lo pones como campo de la consulta funciona si o si. Algo haces no bien ;-)

    Las propiedades de la relaccion entre la tabla Salidas y la de entradas deberia ser 'Incluir TODOS los registros de la tabla Entrada y solo los registros de la tabla de Salida que sean igual el indice.' Osea todos por la dcha.

    Aunque ahora me doy cuenta y ¿Sí hay salidas y no hay entradas...entonces creo que no funcionaria. Prueba y suerte

    Si pondrias los datos exactos de la consulta nos ayudaria a verlo mejor

    • Editado ikanni1 lunes, 21 de marzo de 2016 16:50
    lunes, 21 de marzo de 2016 16:29
  • Muchas gracias por tus respuestas. Me faltaban las relaciones entre la tabla productos y las consultas Total entrada y total salida dentro de la consulta stock y poner en las relaciones la opción 2 (todos los registros y solo aquellos registros que...). Despues funciona perfectamente SiInm(EsNulo...)

    Thks ;) por tu ayuda.

    Por si alguien necesita los pasos más detallados hay una persona que lo hace en este ejemplo

    ejemplo Cálculo stock sin VBA

    lunes, 21 de marzo de 2016 20:06
  • Hola

    Yo usaría una única tabla de movimientos. Pondría un campo para identificar el tipo de movimiento (entrada, salida, regularización de stock, etc...), y el número de unidades en positivo o negativo según corresponda. Así podrías tenerlo todo muy sencillo con una única tabla.

    Salu2,


    José Mª Fueyo 

    martes, 22 de marzo de 2016 12:12