Microsoft Access 2003 Antonio M. Mora García ÍNDICE Introducción a las bases de datos. Introducción a Access. Creación de una base de datos. Tablas. Operaciones con tablas. Relaciones. Consultas. Formularios. Informes. Páginas de acceso a datos. Introducción a Access 2003 Antonio Mora García Departamento ATC 2 Introducción a las Bases de Datos Introducción a Access 2003 Antonio Mora García Departamento ATC 3 Introducción a las Bases de Datos Conceptos (I) Una Base de Datos (BD en adelante) es un conjunto de información relacionada entre si, almacenada de forma estructurada, congruente y robusta, que facilita la actualización, búsqueda y recuperación de la misma. Ejemplo: una BD podría almacenar los datos de los empleados de una empresa, así como los clientes, los productos que ofrece dicha empresa y una relación entre todos ellos que podrían ser los pedidos. Las BBDD normalmente están distribuidas en varios equipos, uno contiene los datos (la BD en sí) y los otros acceden a ellos y los modifican usando programas remotos (a través de la red), por ejemplo formularios. Además, en una BD suele haber varios tipos de usuarios: los que consultan los datos, los que pueden modificarlos y los que pueden modificar las propiedades de la misma (administradores). Introducción a Access 2003 Antonio Mora García Departamento ATC 4 Introducción a las Bases de Datos Conceptos (II) Un Sistema de Gestión de la Base de Datos (SGBD en adelante) es un conjunto de programas que se encuentran en un nivel entre los datos físicos de la BD y los usuarios o aplicaciones que deseen acceder a dichos datos. Estos programas se encargan de manejar todas las solicitudes de acceso a la BD formuladas por usuarios y/o aplicaciones, gestionando todas las acciones que ejecuta la BD (inserción, eliminación, actualización, etc). Introducción a Access 2003 Antonio Mora García Departamento ATC 5 Introducción a las Bases de Datos Conceptos (III) • Tabla (o entidad) es una estructura que sirve para almacenar las características deseadas de una entidad real. Por ejemplo, se podría considerar tener una tabla para guardar los datos relativos a una persona. • Campo (o atributo) es una de las posibles características de la entidad que queremos almacenar en una tabla. Por ejemplo la edad de la persona sería un campo de la tabla anteriormente citada. • Dominio conjunto dentro del que puede tomar valores cada campo. Por ejemplo la edad de la persona tendría como dominio asociado el conjunto de los números enteros positivos y mayores que 0. Como posible valor también se contempla el NULO (no tomar ningún valor) • Registro (o tupla/fila) cada uno de los conjuntos que tengan un valor para cada campo de la tabla. Los registros son los que contienen realmente la información dentro de una tabla. Introducción a Access 2003 Antonio Mora García Departamento ATC 6 Introducción a las Bases de Datos Ejemplo Campos Tabla DATOS PERSONALES DNI Nombre Apellido Edad Sexo 89387337-L Juan Martín 23 V 21312302-K Ana García 98728763-H Rosa Aranda 40 M 76565433-Z José Reyes 57 V M * Cualquier coincidencia con la realidad será fruto de la casualidad Registro Dominios DNI Alfanumérico Nombre Apellido Alfabético Introducción a Access 2003 Alfabético Edad Sexo Numérico Entero (> 0) ‘V’ o ‘M’ Antonio Mora García Departamento ATC 7 Introducción a las Bases de Datos Conceptos (IV) • Clave Primaria (llave primaria o clave principal) es un campo, o conjunto de campos que identifican a un registro de forma única dentro de una tabla. Ejemplo: en la tabla anterior, DATOS PERSONALES, podríamos considerar como clave primaria el campo DNI, o el conjunto de campos Nombre+Apellido. Ya que ambos identificarían a un solo registro en dicha tabla La clave primaria será mejor cuantos menos campos contenga (será más simple) y para elegirla (para elegir los campos que la formarán), debemos asegurarnos de su unicidad en el futuro (a medida que se introduzcan datos en la tabla). Muchas veces se usa como clave primaria un nuevo campo, que suele ser un número entero que se incrementa (automáticamente en muchos SGBD) con la creación de cada nuevo registro. Introducción a Access 2003 Antonio Mora García Departamento ATC 8 Introducción a las Bases de Datos Conceptos (V) • Integridad los datos no deben duplicarse y ser congruentes, para ello se establecen mecanismos que evitan dos accesos simultáneos y modificación del mismo dato. • Consistencia (fiabilidad) los datos no deben tener fallos lógicos (por ejemplo ‘edad’ < 0) ni fallos semánticos (por ejemplo ‘Marai’ en lugar de ‘María’). • Seguridad los usuarios se agrupan en clases con diferentes tipos de acceso (incluso acceso a distintos datos). Además se encriptan (se codifican) dichos datos y se protegen de fallos físicos que pudieran afectarles (se hacen copias de seguridad). Introducción a Access 2003 Antonio Mora García Departamento ATC 9 Introducción a las Bases de Datos Conceptos (VI) Existen varios modelos de BBDD, el más extendido es el modelo relacional, en el cual las tablas de una BD están vinculadas con otras mediante relaciones. Con ellas se dota de cierta lógica a la estructura de la BD, pues determinan la ‘interacción’ entre las tablas (pueden entenderse como acciones o dependencias), que es lo realmente importante en este modelo. Uno de sus usos más comunes es evitar la duplicación de información dentro de una tabla, pues se tendrá una parte de los datos en ella y otra parte en una tabla diferente. Las relaciones pueden tener varias cardinalidades: - 1 a 1 (1-1) cada registro de una tabla se corresponde con uno de la otra. Ejemplo: EMPLEADOS DATOS_PERSONALES Cada empleado solo tiene unos datos personales y éstos solo se corresponden con un empleado. - 1 a Varios (1-N) cada registro de una tabla está vinculado con varios de otra. Ejemplo: EMPRESA EMPLEADOS Una empresa tiene varios empleados. - Varios a Varios (N-N) varios registros de una tabla se relacionan con varios de otra. Ejemplo: MÉDICOS ----- PACIENTES Un médico trata a varios pacientes y un paciente puede ser tratado por varios médicos. Introducción a Access 2003 Antonio Mora García Departamento ATC 10 Introducción a las Bases de Datos Conceptos (VII) Antes de crear una BD, es necesario realizar un análisis de las necesidades del usuario de la misma, para adaptarnos (en lo posible) a ellas. Deberemos meditar acerca de las tablas a utilizar y los campos que deben contener. Debemos pensar muy bien este aspecto a fin de: - evitar la redundancia de datos (que no se repita lo mismo varias veces) - tener el menor tamaño posible (lo cual acelerará la carga de datos), con dominios adecuados al tipo y valores del campo. - elegir una clave primaria correcta, asegurando que dos registros diferentes no puedan tener la misma en ningún caso. Dicha clave debería contener el menor número de campos posible y ser numérica para ser más óptima. - agilizar el acceso a las tablas (con índices). Igualmente debemos tener claro las reglas a introducir para asegurar la corrección y fiabilidad de dichos datos. Otro aspecto a considerar serán las relaciones entre tablas, a fin de modelar las interacciones entre las entidades que representan, procurando, a su vez, evitar la redundancia de datos dentro de cada tabla. Introducción a Access 2003 Antonio Mora García Departamento ATC 11 Introducción a Access Introducción a Access 2003 Antonio Mora García Departamento ATC 12 Introducción a Access ¿Qué es Access? Access es un Sistema de Gestión de Bases de Datos incluido dentro del paquete Office de Microsoft. Permite el diseño y creación de una BD y ofrece herramientas para su consulta e interacción, tanto por parte del gestor de la BD, como por parte de los usuarios finales de la misma. Su filosofía, al igual que todas las aplicaciones de Microsoft es la de facilitar la tarea al usuario del programa, por lo que ofrece un planteamiento sencillo de todas sus posibilidades para el creador/gestor de la BD. Entre las herramientas que ofrece con este fin se encuentran: - Un sencillo editor de tablas. - Una utilidad visual para establecer relaciones entre tablas. - Un completo y sencillo asistente para creación de consultas. - Los formularios (y autoformularios), que permiten crear sencillas aplicaciones para que el usuario interaccione con las tablas. - La posibilidad de definir macros (acciones automáticas). - Los informes que muestran consultas ya construidas útiles para los clientes. - Las páginas de acceso a datos, que permiten interaccionar con la BD a través de internet o la red interna de la empresa. Introducción a Access 2003 Antonio Mora García Departamento ATC 13 Introducción a Access Crear una BD Para ejecutar Access, podremos hacerlo, bien a través del icono que habrá en el escritorio , o en el conjunto de programas de Office (Inicio Todos los Programas Microsoft Office). Una vez iniciemos el programa, podremos crear una nueva base de datos en el menú ‘Archivo Nuevo’ (o el icono ) y elegiremos Base de datos en blanco… Nombre de la BD Asignaremos un nombre a la BD (dentro del directorio que decidamos) y pulsaremos el botón ‘Crear’. El fichero tendrá extensión ’.mdb’. En nuestro caso crearemos ‘prueba.mdb’. Introducción a Access 2003 Antonio Mora García Departamento ATC 14 Introducción a Access Abrir una BD Para abrir posteriormente la BD que hayamos creado, podremos hacerlo, bien desde dentro de Access (ejecutando primero el programa): - pulsando el icono ‘Abrir’ ( ) - en el menú ‘Archivo Abrir…’ - en la barra que aparece a la derecha (seleccionando la BD que deseemos): O bien, haciendo doble click sobre el icono de la BD (fichero ‘.mdb’) en el explorador de archivos de Windows: En cualquier caso, es posible que se nos muestre un mensaje de advertencia de seguridad, que deberemos aceptar si sabemos que la procedencia de la BD es fiable. Introducción a Access 2003 Antonio Mora García Departamento ATC 15 Introducción a Access Ventana de la BD Tras esto aparecerá la ventana con las posibles acciones a realizar sobre la BD y la gestión de sus elementos. Elementos (objetos) de la BD Barra de Menú Abrir elemento Abrir vista de diseño Crear nuevo elemento Creación de elemento. (Creación de una tabla) Eliminar elemento Tipo de vista de elementos (iconos grandes, pequeños, lista o detalles) Los elementos que vayamos creando se irán mostrando por orden alfabético (en una lista debajo de las opciones de creación). Introducción a Access 2003 Antonio Mora García Departamento ATC 16 Tablas Introducción a Access 2003 Antonio Mora García Departamento ATC 17 Tablas Crear una Tabla (I) Una vez en la ventana de la BD y con el elemento ‘Tablas’ seleccionado, pulsaremos uno de los iconos o una de las 3 opciones de creación de tablas. Introducción a Access 2003 Antonio Mora García Departamento ATC 18 Tablas Crear una Tabla (II) Otra opción de creación pasa por introducir directamente datos dentro de la tabla (en la Vista Hoja de datos). Access definirá automáticamente los dominios de los campos. Introducción a Access 2003 Antonio Mora García Departamento ATC 19 Tablas Crear una Tabla (III) La última opción de creación se hace mediante un asistente que nos facilitará la tarea. Introducción a Access 2003 Antonio Mora García Departamento ATC 20 Tablas Crear una Tabla (IV) Crearemos nuestra primera tabla haciendo uso del editor en Vista Diseño Nombres de los campos Dominio (tipo ) de cada campo Introducción a Access 2003 Descripción de los campos Antonio Mora García Departamento ATC 21 Tablas Crear una Tabla (V) Crearemos nuestro primer campo, por ejemplo el nombre de una persona, elegiremos como dominio ‘Texto’ y añadiremos una descripción aclaratoria. Dominios/tipos posibles del campo. Propiedades del dominio (tipo) del campo. Introducción a Access 2003 Antonio Mora García Departamento ATC 22 Tablas Crear una Tabla (VI) Tipos de Dominios posibles: (los más importantes) Texto el campo almacenará valores de tipo texto (cadenas de caracteres), incluyendo letras, números y símbolos. Es el tipo por defecto. Memo el campo guardará textos largos (hasta 64000 caracteres). Número el campo guardará datos numéricos. Hay varios tipos: · byte: para almacenar el rango de 0 a 255 · entero: para el rango entre -32768 y 32767 · entero largo: para el rango entre -2.147.483.648 y 2.147.483.647 · simple: para números decimales entre -3,4x1038 y 3,4x1038 con 7 decimales · doble: para números entre -1,797x1038 y 1,797x1038 con 15 lugares decimales. Fecha/Hora el campo guardará datos de fecha y hora en varios formatos. Autonumérico número que se incrementa automáticamente con la creación de cada registro. Si/No el campo guardará datos con 2 posibilidades (verdadero/falso). Introducción a Access 2003 Antonio Mora García Departamento ATC 23 Tablas Crear una Tabla (VI) Propiedades de los (dominios de los) campos: Tamaño si el campo es de tipo texto, será el máximo número de caracteres que se podrán introducir en el campo. Si el campo es numérico, será uno de los subtipos de dominios numéricos (byte, entero, entero largo, simple, doble). Formato formato en el que se mostrarán los datos. No afectará a la forma en que se guardan dichos datos. En algunos casos se ofrecen posibles formatos como un desplegable en la ventana de diseño. Valor predeterminado valor por defecto que tomará el campo si no se introduce otro. Ejs: “nombre”,20,15/10/2008,’Si’ Regla de validación permite crear condiciones que deberán cumplir los valores que introduzcamos en el campo. Ej: ‘>0’, para asegurar número positivo. Texto de validación texto que se mostrará si la regla anterior no se cumple. Requerido se indicará si el campo es obligatorio. Permitir longitud cero se indicará si es posible introducir una cadena vacía. Indexado indica si se creará un índice con ese campo. Esto agilizará las búsquedas por ese campo. Título etiqueta/nombre para el campo mostrado en los formularios y en la Vista de Hoja de datos. Introducción a Access 2003 Antonio Mora García Departamento ATC 24 Tablas Crear una Tabla (VII) Propiedades de los (dominios de los) campos: Máscara permite especificar una plantilla que deben cumplir los datos a introducir en el campo. Ej: DNI debe tener 8 números y una letra. El formato de la máscara incluirá: Ejemplo de máscara para DNI: 00000000’-’L Introducción a Access 2003 Antonio Mora García Departamento ATC 25 Tablas Crear una Tabla (VIII) Crearemos ahora el resto de campos que tendrá inicialmente nuestra tabla, dejando los valores por defecto para todas las propiedades de los dominios: En el menú superior podremos usar las opciones: Insertar un campo entre otros dos. Eliminar un campo (el que tengamos seleccionado). Introducción a Access 2003 Antonio Mora García Departamento ATC 26 Tablas Crear una Tabla (IX) Una vez hayamos definido todos los campos de la tabla y sus dominios, deberemos determinar el/los que compondrán la clave primaria de la misma. Para ello seleccionaremos los campos deseados y pulsaremos el icono en el menú superior. Clave primaria (marcada con una llave) Una vez hayamos terminado, guardaremos la tabla con el nombre que deseemos, pulsando el icono . Introducción a Access 2003 Antonio Mora García Departamento ATC 27 Tablas Crear una Tabla (X) Tras haberla creado, podremos ver que se nos muestra dicha tabla en la pantalla principal de la base de datos. Nuevamente, podremos realizar acciones sobre dicha tabla usando los iconos del menú: De forma que podremos abrirla para introducir datos, redefinir (o añadir) alguno de sus campos o dominios (en la vista de diseño) o eliminarla, respectivamente. Introducción a Access 2003 Antonio Mora García Departamento ATC 28 Tablas Editar una Tabla (I) Vamos ahora a ver y modificar el contenido de la tabla. Para ello haremos doble click sobre su nombre o pulsaremos el icono . Aparecerá la ventana de Hoja de Datos, en la que podremos introducir valores para cada campo. Pasar a Vista de Diseño Crear nuevo registro Eliminar registro Introduciremos datos en los campos, para crear un nuevo registro. Para crear otro, introduciremos datos en la fila marcada ‘ * ’. Número de registro primero anterior Una vez terminada la edición, pulsaremos el icono para guardar los datos. siguiente último último nuevo Introducción a Access 2003 Antonio Mora García Departamento ATC 29 Tablas Editar una Tabla (II) Vamos a crear una tabla ‘Datos_Personales’ con datos fiables (consistente) y eficaz, para ello: eliminamos el contenido de la tabla: vamos a vista de Hoja de Datos, seleccionamos todos los registros y pulsamos el botón eliminar. Para seleccionar varios registros, podemos dejar pulsada la tecla MAYÚSCULA/SHIFT y marcarlos con el ratón. vamos a Vista de Diseño: creamos/corregimos los campos siguientes: cambiar el nombre al campo ‘Apellidos’ y llamarlo ‘Apellido1’. crear un nuevo campo llamado ‘Apellido2’ con el mismo dominio que ‘Apellido1’ aseguramos la fiabilidad de algunos campos: DNI: tamaño ‘10’, requerido ‘Si’, máscara ’00000000->L’ Nombre: requerido ‘Si’ Apellido1: requerido ‘Si’ Fecha_Nacimiento: regla de validación ‘<=Ahora( )’ texto de validación “La Fecha de nacimiento no puede ser posterior a la actual” Edad: tamaño ‘byte’ (números de 0 a 255), regla de validación ‘<=100’ texto de validación “La edad no puede superar los 100 años” valor predeterminado ‘0’ (por tener siempre un valor) Sexo: tamaño ‘1‘ (una letra), máscara ‘>L’, regla de validación ‘=“V” O =“M”’ texto de validación “El sexo debe ser 'V' (varón) o 'M' (mujer)” optimizamos las futuras búsquedas y ordenaciones sobre campos: Apellido1: indexado ‘Si (con duplicados)’ Introducción a Access 2003 Antonio Mora García Departamento ATC 30 Tablas Editar una Tabla (III) Una vez terminemos, guardamos los cambios ( ) y pasamos a Vista de Hoja de Datos nuevamente (cerrando la Vista de Diseño o con el botón ), para introducir datos. Ahora introduciremos datos en los registros, comprobando que funcionan todos los mecanismos que hemos dispuesto (máscaras, campos requeridos, reglas de validación, tamaño, etc) para mantener la consistencia. Después guardaremos los cambios. Número de registro primero anterior siguiente último último nuevo Introducción a Access 2003 Antonio Mora García Departamento ATC 31 Tablas Ordenación Una vez tenemos datos en una tabla, podemos realizar una ordenación de los mismos en la ventana de Hoja de Datos, a fin de verlos como a nosotros más nos convenga. De forma que introduciremos los datos en el orden que queramos, puesto que posteriormente podremos realizar la ordenación deseada. Para ello, seleccionaremos un campo haciendo click en la cabecera del mismo (encabezado de la columna) y pulsaremos uno de los botones de ordenación: Ordenación ascendente Ordenación descendente Es posible ordenar por varios campos, pulsando la tecla SHIFT y seleccionándolos con el ratón. Introducción a Access 2003 Antonio Mora García Departamento ATC 32 Tablas Búsqueda (I) Las búsquedas o filtros en tablas son una de las principales utilidades de las mismas, ya que guardamos los datos a fin de consultarlos después. Aún así, las herramientas de búsqueda/filtro que se nos ofrecen en la Vista de Hoja de Datos sirven más que nada para localizar registros de forma rápida, para consultarlos o cambiar sus valores. Filtro por selección Filtro por formulario Aplicar Filtro Buscar Para probar y comprender mejor las funciones de búsqueda, introduciremos más datos en la tabla. Introducción a Access 2003 Antonio Mora García Departamento ATC 33 Tablas Búsqueda (II) Filtro por Selección se filtrarán los registros considerando como valor de filtrado el que tenga el campo del registro que seleccionemos. Ej: si nos situamos en el campo Nombre del 2º registro, se filtrará por Nombre=“Carmen”. Aplicar Filtro se filtrarán los datos aplicando el último filtro que se usó, si ya se han filtrado los datos, mostrará nuevamente todos los de la tabla (deshacer filtro). Buscar se mostrará una ventana ‘típica’ (en otras aplicaciones) de búsqueda. Esta búsqueda se hará sobre los datos mostrados, por lo que si se aplica un filtro, sólo se buscará entre los datos filtrados. Introducción a Access 2003 Antonio Mora García Departamento ATC 34 Tablas Búsqueda (III) Filtro por Formulario se mostrará un formulario (similar a la vista de la tabla) en el que podremos elegir valores para cada uno de los campos, dejando en blanco los que no queramos filtrar. Una vez elegidos los valores para el filtro, pulsaremos el botón Aplicar Filtro ( ). Limpiar valores Cerrar ventana de filtro de los campos Aplicar Filtro Abrir otra ventana de filtro con otras condiciones de filtrado adicionales (por ejemplo otro posible nombre para filtrar) Introducción a Access 2003 Antonio Mora García Departamento ATC 35 Tablas Ejercicio Diseñar una tabla para guardar los datos de nuestros discos de música (‘Discos’). Incluir los campos: título, grupo, cantante, número de componentes, género musical, fecha de publicación, nacionalidad, distribuidora, número de canciones, etc. Incluir un campo al principio que sea un código de disco, de tipo ‘Autonumérico’. Definir los dominios, máscaras y reglas que creamos convenientes para mantener la consistencia. Introducir algunos registros para probar dichas reglas. Entre estos registros, incluir varios discos del mismo grupo. Introducción a Access 2003 Antonio Mora García Departamento ATC 36 Operaciones con Tablas Introducción a Access 2003 Antonio Mora García Departamento ATC 37 Operaciones con Tablas Copiar tablas En Access podemos hacer operaciones con las tablas similares a las habituales en windows, como copia o borrado de ficheros, de una manera muy sencilla. Para copiar una tabla, la seleccionaremos de entre las existentes y pulsaremos el icono ‘Copiar’ de la barra superior ( ), después pulsaremos el icono ‘Pegar’ ( ). Podremos copiar la estructura y los datos o añadir los datos a una tabla ya existente. Introducción a Access 2003 Antonio Mora García Departamento ATC 38 Operaciones con Tablas Importar tablas (I) Importar una tabla es copiarla desde una BD (en la que se creó) en otra. La idea es reutilizar la estructura y/o los datos de una tabla ya creada, ahorrando tiempo de diseño o introducción de datos. Para ver cómo hacerlo, vamos a crear una nueva BD, llamada por ejemplo ‘prueba2.mdb’. A ella vamos a importar la tabla ‘Datos_Personales’ de nuestra BD anterior (‘prueba.mdb’). Si las dos BBDD están creadas en Access (extensión ‘.mdb’), como es nuestro caso, es posible hacer una ‘pseudo-importación’, ya que podemos usar el método de copia de tablas (explicado anteriormente), pero entre las dos BBDD. Para ello, abrimos ‘prueba.mdb’ y ‘prueba2.mdb’ simultáneamente, copiamos la tabla deseada de ‘prueba.mdb’ (con el icono ‘Copiar’) y pulsamos el icono ‘Pegar’ en la ventana de BD de ‘prueba2.mdb’. Introducción a Access 2003 Antonio Mora García Departamento ATC 39 Operaciones con Tablas Importar tablas (II) Existe otra forma de importar tablas (más correcta o estándar en los SGBD). Ésta se hace desde la BD de destino de la tabla (en nuestro caso ‘prueba2.mdb’). En ella mediante el menú: ‘ArchivoObtener Datos ExternosImportar’, accedemos a una ventana en la que elegiremos la BD de la que importar (‘prueba.mdb’) y tras ella se nos ofrecerán las posibilidades de importación: Elegiremos las tablas a importar y pulsaremos el botón ‘Aceptar’. Tras esto, la tabla y su contenido (los datos) se copiarán a la BD de destino. Introducción a Access 2003 Antonio Mora García Departamento ATC 40 Operaciones con Tablas Vincular tablas La vinculación de tablas permite que dos (o más) BBDD compartan una o varias tablas. Lo que se crea es una especie de enlace a la tabla en la BD en la que se creó, de forma que si se modifican los datos en alguna de las BBDD, podremos ver la actualización en todas. La estructura de la tabla (su diseño) solo podrá modificarse en la BD en la que se creó. La vinculación se hace desde la BD de destino de la tabla (en nuestro caso ‘prueba2.mdb’). En ella mediante el menú: ‘ArchivoObtener Datos ExternosVincular’, accedemos a una ventana en la que elegiremos la BD de la que vincular (‘prueba.mdb’) y tras ella se nos ofrecerán las posibilidades de vinculación: Elegiremos las tablas a vincular y pulsaremos el botón ‘Aceptar’. Tras esto, la tabla se vinculará en la BD de destino. Introducción a Access 2003 Antonio Mora García Departamento ATC 41 Operaciones con Tablas Otras operaciones Para eliminar una tabla, la seleccionaremos de entre las existentes y pulsaremos el icono ‘Eliminar’ de la barra superior ( ). Si pulsamos el botón derecho del ratón sobre una tabla, nos aparecerá un menú en el que podremos copiar, pegar, eliminar (lo cual ya hemos comentado) y además, cambiar el nombre de la misma, asignarle propiedades (como una descripción) e incluso exportarla a otra base de datos. Introducción a Access 2003 Antonio Mora García Departamento ATC 42 Operaciones con Tablas Relaciones (I) Vamos a mirar la tabla que hemos creado anteriormente (la de discos de música): Podemos ver que hay una gran repetición de datos, por ejemplo los relativos a cada uno de los grupos (marcados en rojo). Sería mucho mejor si tuviésemos una tabla aparte con los datos de cada uno de estos grupos. Una vez tuviésemos definida (y rellena) esta tabla, simplemente la vincularíamos con la tabla de Discos mediante un campo (que podría hacer referencia al código del grupo en la otra tabla). Dicho campo, es la llamada clave externa y hace referencia a la clave primaria de otra tabla. Introducción a Access 2003 Antonio Mora García Departamento ATC 43 Operaciones con Tablas Esquemáticamente quedaría: Relaciones (II) Discos Grupos CLAVE EXTERNA CLAVE PRIMARIA Si creamos la tabla de ‘Grupos’ con los mismos campos que teníamos en la otra tabla: De esta forma, no se duplican datos de forma innecesaria, lo cual disminuye el tamaño de la base de datos y hace que ésta sea más óptima y cumpla mejor con las normas del diseño general de bases de datos. Introducción a Access 2003 Antonio Mora García Departamento ATC 44 Operaciones con Tablas Relaciones (III) Para hacerlo en Access 2003, pulsamos el icono ‘Relaciones’ ( Mostrar tablas para relacionar Mostrar las relaciones Eliminar diseño de relaciones ): Mostrar ventana de BD Aparecerá la Ventana de Relaciones, en la que seleccionaremos las tablas que vayamos a relacionar de entre las que tengamos en la base de datos. En nuestro caso seleccionaremos las tablas ‘Discos’ y ‘Grupos’ y pulsaremos (cada vez) el botón ‘Agregar’ para mostrarlas en la Ventana de Relaciones. Cuando terminemos pulsaremos el botón ‘Cerrar’. Introducción a Access 2003 Antonio Mora García Departamento ATC 45 Operaciones con Tablas Relaciones (IV) Tras esto, aparecerán las tablas en la Ventana de Relaciones. Para establecer la relación deseada, hacemos click en el campo de la tabla con la clave externa y lo arrastramos hasta el campo clave primaria de la tabla con la que queremos establecer la relación. En nuestro caso: Discos-ID_Grupo Grupos-COD_Grupo Tras esto, aparecerá la ventana de Modificación de Relaciones, en la que determinaremos las propiedades de la relación. En este caso la relación será Uno a Varios y exigiremos integridad referencial (que las claves primaria y externa coincidan). Podemos seleccionar la actualización y borrado en cascada si lo deseamos. Introducción a Access 2003 Antonio Mora García Departamento ATC 46 Operaciones con Tablas Relaciones (V) Una vez terminemos de crear la relación, ésta aparecerá representada en la ventana de relaciones: Veremos que se muestra un ‘1’ en la parte de la tabla con la clave primaria (‘Grupos’) y un ‘∞’ en la parte de la tabla con la clave externa (‘Discos’). Las tablas estarán unidas por los campos que hubiésemos elegido. Una vez terminemos la creación de relaciones, deberemos guardar los cambios realizados pulsando el icono ‘Guardar’ ( ) o cerrando directamente la ventana de relaciones, con lo que nos aparecerá una ventana de advertencia: Responderemos a la pregunta que ‘Si’ (si deseamos guardar los cambios). Introducción a Access 2003 Antonio Mora García Departamento ATC 47 Operaciones con Tablas Relaciones (VI) Tras hacer la relación, podremos ver una utilidad que ofrece Access y que puede ayudar mucho al gestor de la BD. Si nos vamos a la tabla de ‘Grupos’ (la que tiene en la relación la parte ‘Varios’), podremos ver que junto a cada registro se ha dispuesto un sigo más (+). Si lo pulsamos, podremos ver que se despliega una ‘subtabla’ con los datos relativos a dicho registro en la tabla relacionada, en este caso, la tabla ‘Discos’. Dichos datos se refieren a los registros de la tabla ‘Discos’ que están relacionados con cada uno de los registros de la tabla ‘Grupos’, es decir, los que tienen como valor para el campo ‘ID_Grupo’ el mismo que el registro tiene como ‘COD_Grupo’. Introducción a Access 2003 Antonio Mora García Departamento ATC 48 Base de Datos de Clínica Ejercicio (I) Vamos a crear una Base de Datos sencilla para una clínica. En ella crearemos 3 tablas: ‘Médicos’, ‘Pacientes’ e ‘Informes’. Estas tablas las describiremos a continuación: Introducción a Access 2003 Antonio Mora García Departamento ATC 49 Base de Datos de Clínica Ejercicio (II) Definir los dominios, máscaras y reglas que creamos convenientes para mantener la consistencia. Las claves primarias están marcadas en negro. También habrá que crear las relaciones entre ellas, teniendo en cuenta que las claves externas están marcadas en gris. Definir índices en los campos principales según creamos. Introducir varios registros en cada tabla (10 o más), para probar las reglas y dominios. Introducción a Access 2003 Antonio Mora García Departamento ATC 50 Consultas Introducción a Access 2003 Antonio Mora García Departamento ATC 51 Consultas ¿Qué son? (I) Las consultas son las principales acciones que se pueden realizar sobre una BD (una vez que las tablas han sido definidas y tienen datos coherentes y fiables). Una consulta consiste en seleccionar un conjunto de datos que cumplan una serie de criterios, aunque éstos se encuentren en varias tablas (como de hecho ocurrirá generalmente). Ejemplo: (consulta de un usuario en la BD de una biblioteca universitaria) Obtener el título, localización, fecha de préstamo y fecha de devolución de los libros de física nuclear escritos por Frank Smith después del 2005. Como podemos ver en el ejemplo, la consulta (en principio) es transparente al usuario, en cuanto a que él no sabrá de qué tablas deberá coger la información y que nosotros, como diseñadores de la BD, deberemos solucionar. Dicha consulta busca una serie de campos (título, localización, fecha préstamo, fecha devolución) en cada registro que cumpla las condiciones deseadas (tema=‘física nuclear’, autor=‘Frank Smith’ y publicado>’2005’). Éstos campos (los buscados y los de las condiciones) pueden encontrarse en tablas diferentes. En el ejemplo podrían ser: ‘Libros’, ‘Autores’ y ‘Préstamos’. Introducción a Access 2003 Antonio Mora García Departamento ATC 52 Consultas ¿Qué son? (II) La importancia de las consultas es tanta que se podría decir que las BBDD se crean para poder hacer dichas consultas. Normalmente, nosotros diseñaremos las consultas que creamos más interesantes para los usuarios de nuestra BD (o para nosotros mismos). Éstas quedarán almacenadas en la BD como objetos (al igual que las tablas), por lo que las podremos utilizar y/o modificar posteriormente tantas veces queramos. Existe un lenguaje para la creación de las consultas, SQL (Standard Query Language), el cual es estándar para todos los SGBD. Nosotros podemos utilizarlo en Access, pero usaremos las herramientas visuales que nos ofrece el programa de Microsoft para crearlas de una manera más sencilla. Aunque realmente esto se traduzca es código SQL internamente. Las consultas incluyen varias posibilidades: - Selección búsqueda de los datos deseados. - Inserción adicción de datos a las tablas (creación de nuevos registros). - Actualización cambio de datos en las tablas (modificación de registros existentes). - Borrado eliminación de datos de las tablas. Introducción a Access 2003 Antonio Mora García Departamento ATC 53 Consultas Primera consulta (I) Vamos a crear nuestra primera consulta sencilla (en la BD de la clínica): “Seleccionar los Pacientes (Nombre y 2 apellidos) que sean mujeres” Para ello, vamos a la pantalla de la BD y seleccionamos el objeto (pestaña) ‘Consultas’: Podremos crear la consulta en la Vista de Diseño de Consultas (también con los iconos ) o por medio del Asistente de Creación de Consultas. Crear una consulta mediante varios asistentes. Eliminar consulta. Tipo de vista de elementos (iconos grandes, pequeños, lista o detalles) Introducción a Access 2003 Antonio Mora García Departamento ATC 54 Consultas Primera consulta (II) Crearemos nuestra primera consulta usando la Vista de Diseño. Seleccionaremos la opción o usaremos los iconos o . Nos aparecerá la ventana de creación de consulta y una subventana con las tablas a utilizar en la misma. Para nuestra primera consulta, elegiremos la tabla ‘Pacientes’ y pulsaremos ‘Agregar’. Después pulsaremos ‘Cerrar’. Introducción a Access 2003 Antonio Mora García Departamento ATC 55 Consultas Primera consulta (III) Tras esto, nos aparecerá la tabla elegida en la ventana de la consulta. Elegiremos los campos a mostrar en la consulta y los campos del criterio de la misma (en nuestro caso el campo ‘Sexo’ y la condición ‘=M’). Podremos mostrar los deseados, en este caso, el campo ‘Sexo’ no se mostrará. Además, se podrá elegir uno o varios campos por los que ordenar los resultados. Tabla de consulta Campos a mostrar Orden de presentación Introducción a Access 2003 Campo del criterio Criterio de selección Antonio Mora García Departamento ATC 56 Consultas Primera consulta (IV) Para probar el resultado de la consulta, podremos hacerlo con el icono ‘Vista Hoja de datos’ ( ) o el icono ‘Ejecutar’ ( ). Podemos ver el resultado de la consulta en nuestra BD. Como se puede notar, todas son mujeres (se intuye por el nombre), no se muestra el campo ‘Sexo’, y los resultados aparecen ordenados por el ‘Apellido1’. Entre las vistas a elegir (primer icono a la izquierda), podremos ver la Vista SQL, en la que se nos mostrará el código correspondiente a la consulta en este lenguaje estándar. Una vez terminada la consulta, la guardaremos (para su uso futuro) con el icono . Introducción a Access 2003 Antonio Mora García Departamento ATC 57 Consultas Asistente de Creación Como hemos comentado anteriormente, es posible crear consultas usando el asistente que ofrece Access, bien haciendo doble click sobre la opción ‘Crear una consulta usando el asistente’ o con el botón , con el que se nos mostrará la ventana: Las opciones son: - Vista Diseño la vista de creación que hemos comentado anteriormente. - Asistente para consultas sencillas el mismo que aparece si elegimos la opción antes citada y que nos permite hacer una consulta de datos, pero sin condiciones. - Asist. Consultas de ref. cruzadas consulta de datos en varias tablas (o consultas), pero también sin condiciones. - Asistente para búsqueda de duplicados consulta de datos que tengan valores duplicados en una tabla o consulta. - Asistente para búsqueda de no coincidentes busca registros relacionados entre dos tablas. Introducción a Access 2003 Antonio Mora García Departamento ATC 58 Consultas Ejercicio Hacer una consulta (en la BD de la clínica) que: “Muestre el número de colegiado, nombre, primer apellido y especialidad de los médicos cuyo número de colegiado sea mayor de ‘15000’, ordenados por dicho número de mayor a menor” Llamarla ‘Médicos_Nuevos’ por ejemplo. Introducción a Access 2003 Antonio Mora García Departamento ATC 59 Consultas Segunda consulta (I) Vamos a crear una consulta que tome datos de varias tablas (en la BD de la clínica): “ Seleccionar los Pacientes (Nombre y 2 apellidos) que hayan sido tratados en 2008 de algún ‘Dolor’ (motivo de consulta). Mostrar también la fecha, el motivo de consulta y el tratamiento propuesto. Ordenar los resultados por fecha. ” Para ello, creamos una nueva consulta en Vista Diseño y agregaremos las tablas ‘Pacientes’ e ‘Informes’ (vemos que aparecerán vinculadas con la relación que ya habíamos definido): En primer lugar añadiremos a la consulta los campos deseados y elegiremos el orden de presentación de los datos (fecha ascendente). Introducción a Access 2003 Antonio Mora García Departamento ATC 60 Consultas Segunda consulta (II) Para definir los criterios, podremos hacerlo mediante un asistente de creación expresiones, el cual nos ofrecerá muchas funciones ya creadas para realizar alguna tarea que podamos necesitar (como extraer el Año de una fecha por ejemplo). Éste se lanza con el icono ‘Generar’ ( ), sobre el criterio que queremos definir. Para el primer criterio (año = ‘2008’), necesitaremos restringir el rango de las fechas de informes, lo cual lo podremos hacer con una condición doble, para asegurar que la fecha es mayor o igual que el 1 de Enero de 2008 y menor o igual que el 31 de Diciembre de 2008. Para indicar fechas para comparar debemos usar el carácter ‘#’ al principio y al final. Para el segundo criterio (motivo con algo como ‘Dolor’), usaremos la función COMO, con la que podremos buscar partes de una cadena dentro de otra. Se podrán usar los caracteres auxiliares ‘?’ para indicar un carácter y ‘*’ para indicar un grupo de caracteres. En nuestro caso quedaría: COMO ‘*dolor*’ en el campo habría: texto cualquiera + ‘dolor’ + texto cualquiera. Introducción a Access 2003 Antonio Mora García Departamento ATC 61 Consultas Segunda consulta (III) El diseño final de la consulta quedaría: Y el resultado de su ejecución ( o ) sería: Tras comprobar que funciona bien, la guardaremos por ejemplo con el nombre ‘Pacientes_Tratados_Dolor_2008’ Introducción a Access 2003 Antonio Mora García Departamento ATC 62 Consultas Ejercicio Hacer una consulta (en la BD de la clínica) que: “Muestre el número de colegiado, nombre, primer apellido y especialidad de los médicos que hayan tratado a Pacientes en el año 2007. Muestre también la fecha del informe, la prueba realizada y el tratamiento recomendado. Ordene los resultados por fecha del informe, de más antiguo a más nuevo” Llamarla ‘Médicos_Hacen_Informes_2007’ por ejemplo. Opcionalmente, se puede ampliar la consulta anterior mostrando además el nombre y los 2 apellidos del paciente tratado en cada uno de esos informes. Introducción a Access 2003 Antonio Mora García Departamento ATC 63 Consultas Ejercicio (cont.) Si añadimos los datos del Paciente, vemos que al ejecutar la consulta, nos aparecen 2 veces los campos ‘Nombre’ y ‘Apellido1’, unos referidos al médico y otros al paciente. Podemos cambiar la forma en que se muestran los nombre de los campos en la consulta, anteponiendo (en la vista de diseño) al nombre del campo, el nombre que queremos que aparezca y dos puntos (‘:’), es decir: Podemos ver en el resultado que se muestran los nombres como queríamos. Introducción a Access 2003 Antonio Mora García Departamento ATC 64 Consultas Consulta Actualización Aparte de las consultas de selección que hemos visto existen otros 3 tipos de consultas. Vamos a comentar las 2 más utilizadas de forma muy simple. En primer lugar las Consultas de Actualización se utilizan para cambiar varios valores en varios registros que deben cumplir una serie de condiciones. Para hacerlo, creamos una nueva consulta en Vista Diseño y agregaremos las tablas que queramos cambiar (en ‘clinica.mdb’). Por ejemplo agregaremos la tabla ‘Medicos’. Para indicar que se trata de una consulta de Actualización, usaremos el icono y elegiremos el tipo de consulta, en concreto . En este caso, queremos actualizar el nombre de los médicos llamados ‘Emilio’ y asignarles como nombre ‘Roberto’. Para ver los registros que se modificarán, podemos utilizar el icono de ‘Vista de Datos’ ( ). Para ejecutar realmente la consulta y hacer la actualización, pulsaremos el icono ‘Ejecutar Consulta’ ( ) y se nos preguntará: Introducción a Access 2003 Antonio Mora García Departamento ATC 65 Consultas Consulta Eliminación El otro tipo de consulta que vamos a comentar son las Consultas de Eliminación, las cuales se utilizan para eliminar varios registros que deben cumplir una serie de condiciones. Para hacerlo, creamos una nueva consulta en Vista Diseño y agregaremos las tablas de las que queramos eliminar registros (normalmente solo una). Por ejemplo la tabla ‘Pacientes’. Para indicar que se trata de una consulta de Eliminación, usaremos el icono y elegiremos el tipo de consulta, en concreto . En este caso, queremos eliminar los registros de pacientes que fumen (mostraremos sus nombres). Para ver los registros que se eliminarán, podemos utilizar el icono de ‘Vista de Datos’ ( ). Para ejecutar realmente la consulta y hacer la eliminación, pulsaremos el icono ‘Ejecutar Consulta’ ( ) y se nos preguntará: Introducción a Access 2003 Antonio Mora García Departamento ATC 66 Formularios Introducción a Access 2003 Antonio Mora García Departamento ATC 67 Formularios Introducción Los formularios se crearon con el fin de facilitar a los usuarios la visualización y modificación de los valores de los registros de las tablas. Éstos permiten situar los campos en una ventana y disponerlos como más nos guste (o según requiera el usuario). Vamos a crear nuestro primer formulario de ejemplo, para ello, simplemente seleccionaremos una de las tablas de la BD ‘prueba.mdb’, por ejemplo ‘Datos_Personales’ y después pulsaremos el icono ‘Nuevo objeto: Autoformulario’ ( ). Vemos que se muestran los datos de la tabla en una ventana que los hace más sencillos de manejar. En ella podremos visualizar/modificar los registros de una manera simple e intuitiva. Para movernos por los registros podremos utilizar los botones de la parte inferior. Podremos modificar fácilmente la apariencia de los campos en los formularios usando el menú de la parte superior. Tipo y tamaño de Fuente Bordes y tipo de celda Tipo de letra Introducción a Access 2003 Alineación del texto Antonio Mora García Colores de fondo y texto Departamento ATC 68 Formularios Modificación y Diseño Una vez se ha definido la apariencia del formulario, lo podremos guardar ( ) para usarlo posteriormente en la ventana de BD (pestaña ‘Formularios’). Igualmente, podremos cambiar su diseño seleccionándolo y pulsando el botón ‘Vista Diseño’. Con ello nos aparecerá una cuadrícula en la que será posible mover con el ratón los campos, cambiar su diseño o introducir nuevos campos u objetos al formulario (imágenes, botones, figuras geométricas, marcos, pestañas, etc). Cambiar el diseño del mismo es muy sencillo en esta Vista, pues todo se puede hacer de forma directa por medio del ratón. Introducción a Access 2003 Antonio Mora García Departamento ATC 69 Formularios Creación con Asistente La mejor forma de crear un formulario, aparte de hacerlo con la utilidad ‘Autoformulario’, es utilizar el Asistente de Creación de Formularios, eligiendo la opción en la ventana de BD (pestaña de Formularios). Una vez ejecutado aparecerá la ventana: En ella se podrán elegir las tablas o consultas de las que se cogerán los campos. Después podremos escoger los campos a mostrar marcándolos en la parte izquierda y luego pulsando el botón ‘>’ o ‘>>’ (para mostrarlos todos). Introducción a Access 2003 Una vez elegidos los campos a mostrar, podremos decidir la distribución de los mismos en el formulario (para hacernos una idea se muestra un esquema de cada una de las opciones). Antonio Mora García Departamento ATC 70 Formularios Después podremos decidir sobre el estilo que tendrá el formulario. Introducción a Access 2003 Creación con Asistente Para finalizar asignaremos un nombre y pulsaremos el botón ‘Finalizar’. Antonio Mora García Departamento ATC 71 Informes Introducción a Access 2003 Antonio Mora García Departamento ATC 72 Informes Introducción Los informes son listados de datos de la BD que se muestran en el formato elegido a fin de imprimirlos. Son muy utilizados dentro de las empresas para hacer estudios de la información contenida en la BD o para imprimir documentos de uso en el negocio de la empresa (Ej: una factura). La forma más sencilla de crearlos es usando el icono ‘Nuevo objeto: Autoinforme’ ( ), una vez hayamos seleccionado una tabla (o consulta). Con ello nos aparecerá un informe muy simple, mostrando todos los campos de la tabla y con un diseño ‘plano’ (sin nada a destacar). Introducción a Access 2003 Antonio Mora García Departamento ATC 73 Informes Creación con Asistente La mejor forma de crear un informe, aparte de hacerlo con la utilidad anterior o en una Vista de Diseño (mucho más complicado), es utilizar el asistente de creación de informes, eligiendo la opción en la ventana de BD (pestaña de Informes). Una vez ejecutado aparecerá la ventana: En ella se podrán elegir las tablas o consultas de las que se cogerán los campos. Después podremos escoger los campos a mostrar marcándolos en la parte izquierda y luego pulsando el botón ‘>’ o ‘>>’ (para mostrarlos todos). Introducción a Access 2003 Una vez elegidos los campos a mostrar, podremos decidir el agrupamiento de los mismos (para hacernos una idea se muestra un esquema de cada una de las opciones). Antonio Mora García Departamento ATC 74 Informes Creación con Asistente Ordenación de los registros Distribución de los campos Estilo a aplicar Guardamos y finalizamos el asistente Introducción a Access 2003 Antonio Mora García Departamento ATC 75 Informes Creación con Asistente Finalmente, el informe tendrá el siguiente aspecto: Si deseamos modificar su apariencia o contenido, podremos hacerlo seleccionándolo y abriendo la Vista de Diseño. Introducción a Access 2003 Antonio Mora García Departamento ATC 76 Páginas de Acceso a Datos Introducción a Access 2003 Antonio Mora García Departamento ATC 77 Páginas de acceso a datos Introducción Las páginas de acceso a datos se utilizan para acceder a la BD usando una página web, es decir, podremos ver/modificar su contenido a través de internet o en una intranet (red interna de una empresa). La forma más sencilla de crearlas es usando el icono ‘Nuevo objeto: Página’ ( ), una vez hayamos seleccionado una tabla (o consulta). Nos aparecerá una ventana para elegir cómo crearla. Si optamos por ‘Autopágina: en columnas’ para la tabla ‘Datos Personales’, por ejemplo, crearemos la página web que se muestra abajo. Introducción a Access 2003 Antonio Mora García Departamento ATC 78 Páginas de acceso a datos Introducción Una vez la hayamos creado, deberemos guardarla como un fichero externo a la BD de extensión ‘.htm’ (extensión de los ficheros de páginas web). Por tanto deberemos elegir un directorio en el que guardarla. Después podremos abrirla y utilizarla con Internet Explorer. Introducción a Access 2003 Antonio Mora García Departamento ATC 79 Páginas de acceso a datos Creación con Asistente Al igual que los formularios y los informes, también podemos crear una página de acceso a datos usando un asistente, eligiendo la opción en la ventana de BD (pestaña de Páginas). Una vez ejecutado aparecerá la ventana: En ella se podrán elegir las tablas o consultas de las que se cogerán los campos. Después podremos escoger los campos a mostrar marcándolos en la parte izquierda y luego pulsando el botón ‘>’ o ‘>>’ (para mostrarlos todos). Introducción a Access 2003 Una vez elegidos los campos a mostrar, podremos decidir el agrupamiento de los mismos (para hacernos una idea se muestra un esquema de cada una de las opciones). Antonio Mora García Departamento ATC 80 Páginas de acceso a datos Ordenación de los registros Introducción a Access 2003 Creación con Asistente Guardamos y finalizamos el asistente Antonio Mora García Departamento ATC 81