Tutorial de MS Access Un sistema de Bases de Datos Relacional Profesores: Hugo Mora, Ignacio Casas ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Tutorial Access ¿Qué es una Base de Datos? Una Base de Datos es un conjunto de datos que pertenecen al mismo contexto almacenados sistemáticamente para su posterior uso (definición de Wikipedia). Ejemplos de Bases de Datos: una biblioteca; clientes, ventas y productos de una empresa; en una Universidad los nombres de los profesores y cursos que dictan, el nombre de los alumnos, sus cursos y sus notas, el nombre de sus funcionarios, sus direcciones y su sueldo mensual. ¿Qué es un Gestor de Bases de Datos? Un Gestor de Bases de Datos es un programa que permite: Introducir, Almacenar y Recuperar Datos para trabajar con ellos. Ejemplos de sistemas de gestión de bases de datos comunes: SQL Server, Oracle, Access. ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Tutorial Access Tabla Un gestor de bases de datos almacena la información en forma de tablas. Cada fila de la tabla entrega la información relacionada con un elemento de un conjunto, a la información de la fila se le denomina registro. Cada una de las partes en las que se ha desglosado la información de un registro se denomina un campo. Tabla Registro Campo ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Tutorial Access Tipos de Bases de Datos Las Bases de Datos Planas contienen toda la información necesaria en una sola tabla. Es ineficiente ya que crea datos repetidos muchas veces, por lo que aumenta el tamaño de la base de datos innecesariamente y se pueden producir inconsistencias en los datos que se encuentran en distintos registros de la tabla (ver marcos en rojo). ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Tutorial Access Tipos de Bases de Datos Las Bases de Datos Relacionales contienen la información separada en distintas tablas de forma ordenada y eficiente. Cada tabla se refiere a los elementos de otra tabla mediante relaciones en ciertos campos en ambas tablas. Relación Se separa la información de los cursos de la información de los profesores de forma eficiente. Las tablas se relacionan mediante el campo IdProfesor. ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Tutorial Access Interfaz de Access Menú Barra de Herramientas Objetos ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Tutorial Access Crear una Base de Datos en Access La tabla es el elemento básico de una base de datos. Cada base de datos debe contener al menos una tabla. Para crear una nueva base de datos en Access seleccionar Archivo Nuevo y seleccionar Base de Datos en Blanco del panel que aparece a la derecha. Se le da un nombre al archivo que se quiere crear, que va a tener una extensión .mdb. ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Tutorial Access Crear una Tabla Para crear una nueva tabla se pueden escoger tres opciones en el Tab de objetos Tablas: Crear en vista Diseño, utilizando el asistente o introduciendo datos, como se muestra en el cuadro rojo. También se puede seleccionar una tabla de la base de datos y utilizar la barra de herramientas marcada en verde para abrirla, verla en modo de diseño o eliminarla (con la X). ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Tutorial Access Tabla en Modo de Diseño En el Modo de Diseño se crean los campos que va a contener la tabla, el nombre del campo, el tipo de datos (Texto, Numérico, Autonumérico, Fecha/Hora, Si/No, etc.), y una descripción del campo. Cada tabla debe tener una Clave Principal o Clave Primaria, que es uno o más campos que identifican cada registro de manera única (en este ejemplo se creó un código del curso). ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Tutorial Access Tabla en Vista Hoja de Datos En Vista Hoja de Datos se pueden ingresar los datos de los registros particulares que conformarán la tabla. También es posible ordenar los datos de acuerdo al valor de cierto campo, filtrarlos en base a ciertos criterios, e insertar y eliminar registros de la tabla usando las herramientas marcadas en rojo. ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Tutorial Access Relacionar las Tablas En el menú Herramientas Relaciones es posible relacionar las tablas para formar una base de datos relacional. Primero se deben agregar las tablas a relacionar para que aparezcan en el diagrama. Acá se seleccionaron las tablas de Profesores y Cursos. ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Tutorial Access Relacionar las Tablas Para crear una relación entre dos tablas se debe seleccionar el código que se repite en ambas tablas (en este caso la clave primaria de Profesores se utiliza en la tabla de Cursos, donde se le llama clave foránea). Una vez que se ha creado una relación, ésta se muestra gráficamente entre las dos tablas como se muestra en la figura. ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Tutorial Access Consultas Una Consulta es una solicitud de información a la Base de Datos. Los datos mostrados pueden proceder de una tabla o de un conjunto de ellas. Para crear una Consulta se debe ir al Tab Consultas y seleccionar crear una consulta en vista Diseño o utilizando el asistente. ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Tutorial Access Consulta en Modo de Diseño Se pueden crear las consultas en Modo de Diseño, lo que permite ver los campos de las tablas y seleccionarlos directamente en el orden que se desee. Al seleccionar datos de distintas tablas, Access respeta las relaciones existentes entre ellas al momento de mostrar los datos. ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Tutorial Access Consulta en Vista Hoja de Datos Se puede seleccionar Vista Hoja de Datos para ver los datos que entrega la consulta. En este ejemplo se pueden ver los datos de los cursos Cursos y el Apellido del Profesor, que se encuentran en distintas tablas que se relacionan a través de IdProfesor. Se pueden guardar las consultas para poder utilizarlas posteriormente. ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Tutorial Access Filtrar usando Consultas Es posible filtrar los datos mostrados en una consulta seleccionando sólo aquellos registros que cumplan con algún criterio en particular y ordenar los datos de la consulta en uno o varios campos. Por ejemplo, se pueden seleccionar sólo aquellos cursos que sean dictados por los profesores de Apellido ‘Prieto’ o ‘Bernales’ y se puede ordenar ascendentemente de acuerdo al nombre de los cursos. ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Tutorial Access Consulta en Vista SQL Las consultas poseen un lenguaje propio, llamado Lenguaje SQL, que es un estándar usado por todos los sistemas gestores de bases de datos. Es posible ver la consulta en lenguaje SQL creada por la consulta que hicimos en vista de diseño seleccionando Vista SQL. Algunos Comandos del lenguaje SQL: SELECT: Seleccionar tales Campos. FROM: De tales Tablas (INNER JOIN sirve para unir tablas relacionadas). WHERE: Cuando se quiere cumplir algún criterio en los datos. ORDER BY: Ordena un campo en orden ascendente (ASC) o descendiente (DESC). Nota: Para aprender más del lenguaje SQL , su sintaxis y otros comandos ir a http://www.w3schools.com/sql/default.asp ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Tutorial Access Formularios La introducción de los datos directamente en las tablas puede ser incómoda y provocar errores. Los Formularios permiten la entrada de los datos en las tablas de una forma más intuitiva y elegante. Crear un formulario usando el Asistente: Ingresar la tabla y los campos Ingresar el tipo de formulario ICC2100 Taller de Herramientas Computacionales para Ingeniería Elegir el formato Poner el nombre Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Proyecto Gasolinas El ejemplo Gasolinas es un sistema de apoyo a la toma de decisiones para saber qué mezcla de crudo (existen 3 tipos de crudo) es óptima para fabricar 3 tipos de gasolina de distintas calidades que se comercializan a distintos precios en el mercado de manera de maximizar la utilidad de la empresa. El modelo a optimizar se define en la hoja Modelo y se puede ver en el Solver de Excel. ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Proyecto Gasolinas Modelo Gasolinas Celdas Variables: La mezcla óptima de los distintos tipos de crudo a utilizar en cada una de las gasolinas. Objetivo: Se debe encontrar la mezcla óptima de crudos que maximice la Utilidad (ingresos menos egresos de la empresa) y que satisfaga todas las restricciones del modelo. Restricciones del Modelo: 1. El crudo comprado no puede ser más que el crudo total disponible para comprar. 2. No se puede producir más que la demanda máxima. 3. Se requiere un mínimo de Octanaje para cada gasolina. 4. El total producido no puede sobrepasar la capacidad máxima de producción de la planta. 5. Existe una cantidad máxima de sulfuro permitido para cada tipo de gasolina. ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Proyecto Gasolinas En la hoja Modelo se pueden ingresar los datos mediante formularios apretando el botón que dice Ingresar Datos. Aparece un primer formulario que pregunta qué datos quiere ingresar el usuario manualmente. ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Proyecto Gasolinas Si se presiona OK se muestra el primer formulario de ingreso de datos. Este formulario ingresa los datos en las celdas correspondientes en la hoja Modelo. ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Proyecto Gasolinas Si se presiona OK nuevamente se muestra el segundo formulario de ingreso de datos, que ingresa los datos de cantidades de octanaje y sulfuro que contiene cada crudo y los requisitos de cada tipo de gasolina. Este formulario primero lee lo que hay en la hoja Modelo en las celdas correspondientes y las escribe en el formulario. Al hacer click en OK introduce los valores de los TextBoxes en las celdas correspondientes. Ejercicio: Estudiar el código de los formularios vistos. ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Proyecto Gasolinas Luego, el formulario anterior llama a otro formulario que muestra la utilidad máxima obtenida con los nuevos datos y la nueva mezcla óptima se muestra en la hoja Modelo Tarea: Agregar el formulario que permita agregar las demandas de cada gasolina, el máximo disponible de cada crudo y la capacidad máxima a la hoja Modelo cuando se presiona el botón Ingresar Datos. ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Proyecto Gasolinas En la hoja ModeloCiudad se permite seleccionar una ciudad para cargar los datos de los crudos y gasolinas correspondientes a ella y optimizar la utilidad en base a esos parámetros. En estos momentos al cambiar la ciudad en el ComboBox sólo se actualizan los datos de los precios de los crudos. Tarea: Estudiar el funcionamiento de los objetos y eventos en esta hoja viendo su código y complete las tareas que se piden en las hojas del archivo Gasolinas.xls. ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Proyecto Gasolinas Para que funcione el Solver es necesario tener el archivo Solver.xla como Referencia del proyecto VBA. Para referenciar el Solver debe ir a Herramientas Referencias en el IDE de VBA y buscar la referencia al Solver. Si no aparece en la lista, buscar el archivo Solver.xla en su computador y agregarlo como referencia (la dirección del archivo puede ser similar a la que aparece en la parte inferior de la imagen). Agregue una referencia a Microsoft ActiveX Data Objects 2.0 Library si no la tiene para poder conectarse a la base de datos Gasolinas.mdb ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Introducción Excel Visual Basic de Aplicaciones Access Proyecto Proyecto Gasolinas La hoja DatosCrudo se conecta a la base de datos Gasolinas.mdb de Access para obtener los datos del crudo. Para obtener los datos se utiliza el código del evento Click del botón CommandButton1 (el que dice ingresar datos) Tarea: Estudiar el funcionamiento de este código y crear uno similar que obtenga los datos desde la tabla DatosGasolina de Gasolinas.mdb para colocarlos en la hoja DatosGasolina. ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas Links Pueden ver videos tutoriales en www.datapigtechnologies.com. Pueden ver ejemplos de código VBA en http://www.vba-programmer.com/. Pueden ver la página del curso para encontrar más manuales. ICC2100 Taller de Herramientas Computacionales para Ingeniería Módulo de Ingeniería Industrial y de Sistemas