Caso práctico 2 de Access: Movimientos de entradas y salidas en un almacén

6 julio 2012 § Deja un comentario

BubbleObjetivo: Elaborar una base de datos que permita registrar los movimientos de entradas y salidas de los productos, como si se tratara de mantener al día el inventario con las existencias de los productos.

Se trata de diseñar una base de datos que presenta las siguientes características:
a)Mediante un formulario, registra los movimientos donde el campo de la fecha del movimiento muestre por defecto la fecha actual, y el nombre del producto pueda ser seleccionado de una lista de productos ordenada alfabéticamente.
b)La entrada de productos se expresa con números en positivo, mientras que la salida de productos se expresa en números negativos.
c)La actualización del stock de los productos se realiza mediante una consulta de actualización.

1) Crear las tablas de la base de datos

Las tablas de la base de datos son 3, la tabla de los productos (tan sólo registra el nombre del producto y la clave que lo identifica), la tabla de movimientos (registra las entradas y salidas con números positivos o negativos) y la tabla del stock (registra las existencias de cada producto).

Tabla “Productos” -> registra el nombre de cada producto y su identificador (clave principal de la tabla):

Decidimos establecer el tipo “autonumérico” al campo “id_pro” para que la base de datos identifique en secuencia los productos del almacén y no haya lugar a repeticiones por tratarse de ser la clave principal de la tabla.

Tabla “Movimientos” -> registra las altas y bajas que tiene cada producto y en cada operación se apunta un identificador y la fecha en que se realiza la operación. En esta tabla hemos decidido como claves principales los campos “id_mov” y “id_pro”:

Para seleccionar más de una clave principal en una tabla, seleccionamos con el puntero del ratón ambos campos (si no son consecutivos podemos hacerlo con la tecla Control) y una vez seleccionados pulsamos sobre el icono de la llave:

La fecha del movimiento lo expresaremos en el formato de “Fecha corta”, para lograrlo situamos el puntero en el campo y en su ficha “General” (parte inferior del escritorio) seleccionamos este tipo de formato de fecha:

Tabla “Stock” -> presenta dos campos, uno para identificar el producto (que proviene de la tabla “Productos” y también será la clave principal en la tabla) y el otro campo expresa el número de existencias del producto:

2) Establecer las relaciones entre las tablas

Desde el escritorio, pulsamos en el icono de “Relaciones” para establecer las relaciones entre los campos de las tablas. Si no aparece el cuadro de mostrar tabla, pulsamos en el icono correspondiente (el icono con el signo “+“),  según muestra la siguiente imagen:

Relaciones entre tablas

Agregamos una a una nuestra tablas en el escritorio para poder establecer las relaciones entre los campos.

Al arrastrar la vinculación del campo “id_pro” entre las tablas “Productos” y “Movimientos”, establecemos una integración referencial con las debidas actualizaciones y eliminaciones:

Similar entre el campo “id_pro” de las tablas “Productos” y “Stock”.

Vemos al final que Access muestra las relaciones entre las tablas de la siguiente forma:

Hay una relación “1 a1” entre las tablas “Productos” y “Stock” porque cada producto tendrá una y solo una cantidad de existencias. En cuanto a la relación “1 a varios” entre las tablas “Productos” y “Movimientos”, cada producto puede tener infinitas operaciones para dar de alta o de baja cantidades de dicho producto.

3) Preparar las tablas de “Productos” y “Stock” 

En la tabla “Productos” ingresamos una lista de productos que existen en el almacén. Vamos a suponer que se trata de artículos de papelería y completamos manualmente los nombres pues el campo del ID se rellena automáticamente:

En forma similar la tabla “Stock”, en donde la existencia de todos los productos los establecemos en cero (0):

3)Elaborar el formulario 

Para elaborar el formulario que nos permitirá registrar las operaciones de alta o de baja de los productos, elegimos hacerlo con la opción “Crear un formulario utilizando el asistente”.

De la tabla “Movimiento” seleccionamos los campos:

id_mov

fecha_mov

id_pro

cantidad_mov

De la tabla “Productos” seleccionamos el campo:

nombre_pro

De la tabla “Stock” sleccionamos el campo “total_pro”:

Ya tenemos nuestros campos seleccionados y pulsamos en “Siguiente”.

Elegimos una distribución del formulario en columnas:

Elegimos un estilo estándar:

Le damos el nombre al formulario de “FormularioMovimientos”  y finalizamos.

Después de desplazar algunos campos y las etiquetas, el formulario en vista diseño es:

En vista formulario, se muestra de la siguiente manera:

4) Adaptaciones en el formulario 

Para lograr que la fecha actual se muestre por defecto al añadir nuevos registros, nos vamos a la vista diseño del formulario y seleccionamos el campo “fecha_mov” así:

Sobre la casilla del campo, pulsamos en “Propiedades” en el menú desplegable del botón derecho del ratón:

Nos situamos en la ficha “Datos” y en la fila “Valor predeterminado”, pulsamos sobre los 3 puntos y se muestra el siguiente cuadro:

Buscamos la opción “Ahora()”, pulsamos doble clic y vemos en pantalla algo parecido a la siguiente imagen:

Con “Aceptar” volvemos a nuestro formulario. Si accedemos a la vista del formulario, comprobamos que la fecha del día ya se muestra por defecto:

Ahora, vamos a trabajar para que el usuario pueda seleccionar desde una lista el nombre del producto y así evitar errores o duplicaciones en la base de datos.

En vista diseño, activamos el asistente en el cuadro de herramientas y se muestra resaltada la varita mágica así:

Seleccionamos la opción de “Cuadro combinado” en el cuadro de herramientas:

Se muestra el asistente para cuadros combinados:

Seleccionamos la primera opción:

En la próxima pantalla seleccionamos la tabla “Productos”:

Seleccionamos ambos campos porque los vamos a necesitar:

Seleccionamos mostrar la lista de los nombres de los productos ordenada alfabéticamente:

Dejamos tal cual se muestra el siguiente cuadro:

Aparecerá oculto el campo “id_pro” en el cuadro combinado porque no lo necesitamos.

Seleccionamos el campo “id_pro”para guardar los datos en la tabla:

Seleccionamos el mismo campo para almacenar la selección que haga el usuario:

Damos el nombre a la etiqueta y finalizamos:

En vista diseño ahora el formulario se muestra así:

Hemos realizado algunos cambios en la vista diseño para lograrlo. Borramos la etiqueta y la caja del campo que había. Al cuadro combinado lo situamos en el orden correpondiente y le damos proporción con respecto a los demás campos que aparecen en el formulario así como también adaptamos el nombre de la etiqueta.

En vista diseño, el formulario se muestra como en la imagen:

4) Comprobar que el formulario funciona

Ahora vamos a probar el funcionamiento del formulario al añadir nuevos registros. Hacemos un movimiento de entrada (alta):

Guardamos los cambios y nos vamos a la tabla de movimientos para comprobar el registro de la operación:

Volvemos al formulario para probar con un movimiento de salida (baja):

Es importante detenerse en este punto: las cantidades de salidas siempre se apuntarán como cantidades negativas, para que funcione posteriormente la actualización de las existencias. Guardamos los cambios y cerramos del formulario.

En la tabla de “Movimientos” aparecen las operaciones de entrada y salida efectuadas con el mismo producto:

Podemos comprobar, además, que la tabla de “Stock” no ha sufrido ningún cambio, está tal cual la creamos. Su actualización la haremos mediante una consulta que crearemos en el paso siguiente.

5)Crear la Consulta de Actualización para los movimientos 

Para que las actualizaciones no se dupliquen, es decir no se apliquen más de una vez, tendremos que hacer algunos cambios en la tabla “Movimientos”. Agregaremos un campo más que llamaremos “actualizar” el cual será del tipo “Sí/No” que nos permitirá tener el control sobre las actualizaciones.

Nos vamos a la tabla “Movimientos” en vista diseño y agregamos el nuevo campo “actualizar”:

Ya tenemos nuestro controlador de actualizaciones. Las operaciones de entradas y salidas que realicemos mediante el formulario deben actualizarse en la tabla de “Stock”. Para lograrlo, crearemos una consulta de la siguiente manera. Seleccionamos en Consultas la opción “Crear una consulta en vista Diseño”.

Aparece la cuadrícula y la posibilidad de mostrar las tablas con las cuales vamos a trabajar.

Agregamos todas las tablas, una por una, para tener una visión de todos los campos.

Hacemos que la consulta se convierta en una consulta de actualización. Para esto, hay varias vías, desde el menú consulta seleccionar “Consulta de actualización” o hacer clic sobre el escritorio y en el menú desplegable, botón derecho, seleccionarla. Una vez aplicada la acción, en la cuadrícula de la consulta aparecerá una nueva fila de “Actualizar a”.

Vamos a realizar los cambios siguientes: primero, queremos actualizar el campo “total_pro” que reflejará las existencias de cada producto según se den las operaciones de entradas o salidas en el campo “cantidad_mov”; segundo, queremos establecer como criterio que se ejecute la consulta cuando el campo “actualizar” no esté seleccionado (sea falso) y que además, después de realizarse la actualización, el campo “actualizar” cambie a su estado de seleccionado (verdadero). En la próxima imagen se ven los cambios

Con respecto a la tabla “Stock” hemos arrastrado el campo “total_pro” a la cuadrícula y con el Generador hemos seleccionado de las tablas los campos y además utilizado la operación de sumar:

Por otra parte, con respecto al campo “actualizar” de la tabla “Movimientos” hemos establecido el criterio que se ejecute la consulta de actualización cuando el campo tenga un valor “Falso” (es decir, no esté seleccionado con el check) y que posteriormente se cambie su valor a “Verdadero” o lo que es igual el valor del campo pase a ser seleccionado con el check. De esta manera no volverán a aplicarse las entradas o salidas de nuevo, lo cual pudiera ocurrir por equivocación u olvido.

A modo de ilustración, el campo con valor “Verdadero” (sí está seleccionado) es como sigue:

El campo con valor “Falso” (no está seleccionado) es el siguiente:

Nuestra consulta de actualización aparece en el panel de la base de datos:

6)Comprobar que la Consulta de actualización funciona

Vamos a ejecutar la consulta de actualización para comprobar que en la tabla “Stock” se actualizan los movimientos. Para ejecutar la consulta, hacemos doble clic sobre su nombre.

Access nos informa que se va a ejecutar una consulta de actualización:

Pulsamos que sí y se muestra el siguiente cuadro:

Nos indica que se van a actualizar 2 filas (es lógico porque hicimos 2 movimientos, uno de entradas y otro de salida para el mismo producto “cuaderno” que tiene por ID 2. Pulsamos que sí y nos vamos a la tabla “Stock” para ver los cambios:

Comprobamos que el producto con ID 2 tiene 90 existencias, que corresponde a las operaciones de 100 ejemplares de entrada (alta) menos 10 ejemplares de salida (baja). Estas operaciones se ven a hora en la tabla “Movimientos” así:

7)Mejorar el formulario con un botón para actualizar el stock 

Para que el proceso de actualización se realice de manera automática tenemos que: primero, crear una macro con el proceso de ejecución de la consulta de actualización y segundo, crear en el formulario un botón para la ejecución de la macro.

Para crear la macro que incluya el proceso de la ejecución de la actualización, pulsamos en “Nuevo” de los objetos macros. Pulsamos sobre el icono “Condiciones” para que se muestre la columna “Comentario” en la cual apuntaremos la descripción de cada fila (esto es muy importante para recordar cambios realizados):

La primera fila las configuramos como se muestra en la siguiente imagen:

En la parte inferior, seleccionamos la opción que corresponde a la acción

La segunda fila de la macro es como sigue:

Posicionados sobre la acción “AbrirConsulta”, en la parte inferior seleccionamos las opciones que se muestran:

La tercera fila es para que el proceso regrese automáticamente al mismo formulario:

La configuración en la sección inferior es:

Ya podemos guardar y darle nombre “AceptarCambios” a nuestra macro.

Volvemos al formulario en vista diseño para incorporar ahora el botón de actualización.

Seleccionamos del cuadro de herramientas (estando resaltada la varita mágica del asistente) el botón:

Seleccionamos “Ejecutar macro” entre las opciones:

En la próxima pantalla, comprobamos que está seleccionada nuestra macro:

Pulsamos en siguiente y seleccionamos un botón con letras (en vez de imagen) y le damos como etiqueta “Aceptar”:

Posicionamos el botón en la vista diseño del formulario y adaptamos su apariencia:

En vista formulario comprobamos que el botón está presente:

Nos preparamos para hacer otra prueba y comprobar que tanto la consulta de actualización como el botón funcionan.

Vamos a realizar una operación de entrada para el producto “carpeta” con ID 5. Añadimos un registro nuevo  (pulsamos directamente sobre el control >* de la parte inferior del formulario) e ingresamos los datos:

Pulsamos ahora sobre el botón “Aceptar” y aparecen los cuadros acostumbrados:

Comprobamos en las tablas. En “Movimientos” aparece registrada la operación  con el ID 5:

Comprobamos que aparece el campo “Actualizar” seleccionado (valor “Verdadero”).

En la tabla “Stock” verificamos los cambios:

El producto con ID5 ha incrementado sus existencias a 25 unidades.

¿Qué pasa si volvemos a pulsar el botón de actualizar? 

Access nos informará que se actualizará cero (0) filas como se muestra en el cuadro siguiente:

Y comprobaremos que no se realiza ningún cambio en las tablas.

¿Ésta es la única forma de desarrollar una base de datos de entradas y salidas?

Por supuesto que no. Seguramente que en el proceso de este paso a paso habéis pensado que algunas acciones podrían hacerse de otra manera a las aquí explicadas. También podemos mejorar la apariencia y funcionalidad de la base de datos. En este tutorial se presentan las acciones vitales para que funcione la base de datos de un almacén con el objeto de simplicar la explicación del proceso.

Etiquetado:, , , , , , , , ,

Deja un comentario

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

¿Qué es esto?

Actualmente estás leyendo Caso práctico 2 de Access: Movimientos de entradas y salidas en un almacén en Instalar en el PC. Tutoriales paso a paso..

Meta

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 31 seguidores