Stock Con Consult As

3
CALCULAR STOCK A TRAVÉS DE CONSULTAS 1 Vamos a ver cómo podemos calcular un stock de productos sin necesidad de recurrir a código VBA. Sólo vamos a necesitar trabajar con nuestras “amigas” las consultas. Para empezar el proceso necesitamos crear tres tablas: TProductos: que contendrá los siguientes campos: [IdProd] Autonumérico [NomProd] Texto TEntradas: que contendrá los siguientes campos: [IdEntrada] Autonumérico [IdProd] Numérico [CantEntr] Numérico TSalidas: que contendrá los siguientes campos [IdSalida] Autonumérico [IdProd] Numérico [CantSal] Numérico Vamos a crear tres productos a través de la tabla TProductos: 1 – Patatas 2 – Tomates 3 – Alcachofas Vamos a crear cinco entradas de productos a través de la tabla TEntradas 1 (Patatas) 10 (Kg) 2 (Tomates) 15 (Kg) 3 (Alcachofas) 5 (Kg) 1 (Patatas) 10 (Kg) 3 (Alcachofas) 25 (Kg) Finalmente, vamos a crear cuatro salidas a través de la tabla TSalidas 1 (Patatas) 6 (Kg) 2 (Tomates) 10 (Kg) 2 (Tomates) 2 (Kg) 1 (Patatas) 3 (Kg) No hemos creado una salida de Alcachofas para poder explicar un poco más adelante un tema de tipos de combinación. El proceso va a consistir en tres fases: 1.- Crear una primera consulta que nos sume todas las entradas 2.- Crear una segunda consulta que nos sume todas las salidas 3.- Crear una tercera consulta que nos determine el stock Vamos a por la primera fase: 1- Creamos una consulta en vista diseño y añadimos las tabla TEntradas. En el grid de la consulta añadimos los campos [IdProd] y [CantEntr]. 2.- Convertimos esa consulta en una consulta de totales (a través del botón con el signo de 1 La BD de ejemplo os la podéis bajar aquí . 1 Visítame en http://siliconproject.com.ar/neckkito/

description

procedimiento para crear un control de stock en acccess automatizado

Transcript of Stock Con Consult As

  • CALCULAR STOCK A TRAVS DE CONSULTAS1

    Vamos a ver cmo podemos calcular un stock de productos sin necesidad de recurrir a cdigo VBA. Slo vamos a necesitar trabajar con nuestras amigas las consultas.

    Para empezar el proceso necesitamos crear tres tablas:

    TProductos: que contendr los siguientes campos: [IdProd] Autonumrico [NomProd] Texto

    TEntradas: que contendr los siguientes campos: [IdEntrada] Autonumrico [IdProd] Numrico [CantEntr] Numrico

    TSalidas: que contendr los siguientes campos [IdSalida] Autonumrico [IdProd] Numrico [CantSal] Numrico

    Vamos a crear tres productos a travs de la tabla TProductos:1 Patatas2 Tomates3 Alcachofas

    Vamos a crear cinco entradas de productos a travs de la tabla TEntradas1 (Patatas) 10 (Kg)2 (Tomates) 15 (Kg)3 (Alcachofas) 5 (Kg)1 (Patatas) 10 (Kg)3 (Alcachofas) 25 (Kg)

    Finalmente, vamos a crear cuatro salidas a travs de la tabla TSalidas1 (Patatas) 6 (Kg)2 (Tomates) 10 (Kg)2 (Tomates) 2 (Kg)1 (Patatas) 3 (Kg)

    No hemos creado una salida de Alcachofas para poder explicar un poco ms adelante un tema de tipos de combinacin.

    El proceso va a consistir en tres fases:

    1.- Crear una primera consulta que nos sume todas las entradas2.- Crear una segunda consulta que nos sume todas las salidas3.- Crear una tercera consulta que nos determine el stock

    Vamos a por la primera fase:

    1- Creamos una consulta en vista diseo y aadimos las tabla TEntradas. En el grid de la consulta aadimos los campos [IdProd] y [CantEntr].

    2.- Convertimos esa consulta en una consulta de totales (a travs del botn con el signo de

    1 La BD de ejemplo os la podis bajar aqu.

    1Vistame en http://siliconproject.com.ar/neckkito/

    http://db.tt/veJxfzGy

  • sumatorio (). Veremos que en el grid de la consulta nos aparece una lnea ms, que es Agrupar por.

    3.- En la columna del campo [CantEntr], en la lnea Agrupar por, seleccionamos una agrupacin por SUMA

    4.- Guardamos nuestra consulta con el nombre de CSumaEntradas

    La fase dos es prcticamente un calco de la fase uno, simplemente utilizando la tabla TSalidas. Repetimos por si acaso aqu el proceso paso a paso:

    1- Creamos una consulta en vista diseo y aadimos las tabla TSalidas. En el grid de la consulta aadimos los campos [IdProd] y [CantSal].

    2.- Convertimos esa consulta en una consulta de totales (a travs del botn con el signo de sumatorio (). Veremos que en el grid de la consulta nos aparece una lnea ms, que es Agrupar por.

    3.- En la columna del campo [CantSal], en la lnea Agrupar por, seleccionamos una agrupacin por SUMA

    4.- Guardamos nuestra consulta con el nombre de CSumaSalidas

    Finalmente (o no tan finalmente...) llegamos a la fase tres. Vamos a ver los problemas que nos aparecen y cmo vamos a ir solventndolos.

    1.- Creamos una consulta en vista diseo y aadimos las consultas CSumaEntradas y CSumaSalidas y la tabla TProductos. Veremos que nos aparece una relacin entre los campos [IdProd] de la tabla CSumaEntradas y la tabla TProductos.

    2.- Debemos relacionar manualmente las consultas. As pues, en la tabla CSumaEntradas hacemos click sobre el campo [IdProd] y lo arrastramos sobre [IdProd] de CSumaSalidas. Nos aparecer una lnea que los une.

    3.- Aadimos al grid de la consulta los campos [IdProd] (de la tabla CsumaEntradas, por ejemplo), [NomProd], [SumaDeCantEntr] y [SumaDeCantSal].

    4.- Guardamos la consulta con el nombre de CCalculoStock

    Si ahora ejecutamos la consulta vemos que los datos que nos muestra no son los que esperbamos. Por qu? Porque hemos comprado alcachofas, pero no aparecen por ninguna parte. Y por qu no aparecen?

    No aparecen porque al crear una relacin Access, por defecto, nos crea el tipo de combinacin 1. Es decir, muestra slo los registros que son coincidentes en ambas tablas. Como no hay alcachofas en salidas, pues no se muestra.

    Debemos pues cambiar el tipo de combinacin:

    5.- Situamos la consulta en vista diseo y hacemos click con el botn derecho sobre la lnea de relacin entre CSumaEntradas y CSumaSalidas. Nos aparecer un men contextual con una opcin que dice Propiedades de la combinacin.

    6.- Hacemos click sobre esa opcin y se nos abrir la ventana para poder definir el tipo de

    2Vistame en http://siliconproject.com.ar/neckkito/

  • combinacin. En este caso, nos interesa la combinacin tipo 2, que nos mostrar todos los registros de la tabla CSumaEntradas.

    Si ahora ejecutamos la consulta veremos cmo aparecen nuestras alcachofas.

    El clculo del stock sera ahora facil (entradas salidas) si no fuera por un pequeo detalle: en el campo [SumaDeCantSal] para las alcachofas no hay ningn valor, y la consulta no puede sacar la diferencia de la resta de Entrada NULO.

    Cmo solventamos este problema? Vamos a utilizar el mtodo IIf (=SiInm) para arreglarlo:

    7.- Situamos la consulta en vista diseo y eliminamos la columna correspondiente al campo [SumaDeCantSal]

    8.- En una columna vaca del grid, en la lnea correspondiente a Campo:, escribimos la siguiente expresin:

    Salidas: IIf (IsNull([SumaDeCantSal]);0;[SumaDeCantSal])

    Que traducido a un lenguaje entendible vendra a decir lo siguiente:

    Si es nulo el valor de la suma escribes un cero; si no escribes el valor de la suma

    Si ahora ejecutamos la consulta veremos que ya tenemos nuestro cero y no un valor NULO.

    Ahora s... Ya slo nos queda la frmula para calcular el stock. Para ello...

    9.- En una columna vaca, en la lnea de Campo:, escribimos la siguiente expresin:

    Stock: [SumaDeCantEntr] - [Salidas]

    Y, gracias a nuestras maravillosas consultas, ya tenemos el stock calculado.

    Suerte!

    3Vistame en http://siliconproject.com.ar/neckkito/