MICROSOFT ACCESS INDICE I. INTRODUCCION ............................................................................................................................................4 1.1 Qué es una base de datos ...........................................................................................................................4 1.2 Iniciar una sesión de Access........................................................................................................................4 1.3 La primera base de datos ............................................................................................................................4 1.4 Objetos de una base de datos .....................................................................................................................4 1.5 Creación de una base de datos ...................................................................................................................5 1.6 Introducción de datos...................................................................................................................................7 II. OBJETIVO DE UNA BASE DE DATOS ........................................................................................................8 2.1 Caso práctico ...............................................................................................................................................8 2.2 Ejercicio .......................................................................................................................................................8 III. RELACIONES...............................................................................................................................................11 3.1 Concepto......................................................................................................................................................11 3.2 Tipos ............................................................................................................................................................11 3.3 Práctica ........................................................................................................................................................12 IV. MANEJO DE DATOS, TABLAS Y REGISTROS .........................................................................................13 4.1 Indrucir datos ...............................................................................................................................................13 4.2 Añadir registros ............................................................................................................................................13 4.3 Modificar registros........................................................................................................................................13 4.4 Modificar el ancho de una columna..............................................................................................................13 4.5 Borrar un registro .........................................................................................................................................13 4.6 Búsqueda de datos ......................................................................................................................................14 4.7 Ordenamiento de datos................................................................................................................................14 4.8 Copiar una tabla...........................................................................................................................................14 V. CONSULTAS ................................................................................................................................................15 5.1 Concepto......................................................................................................................................................15 5.2 Tipos de consultas .......................................................................................................................................15 5.3 Ejemplo ........................................................................................................................................................15 5.4 Consultas con criterios.................................................................................................................................16 5.5 Expresiones .................................................................................................................................................17 5.6 Caracteres comodín.....................................................................................................................................17 VI. CAMPOS CALCULADOS ............................................................................................................................18 6.1 Concepto y ejemplo .....................................................................................................................................18 6.2 Creación de una tabla nueva con campos de otras tablas...........................................................................18 VII. FORMULARIOS ..........................................................................................................................................19 7.1 Creación de formularios utilizando el asistente ............................................................................................19 7.2 Creación y personalización de formularios paso a paso ..............................................................................20 7.3 Control de cálculo de campos en un formulario ...........................................................................................22 VIII. TECNOLOGIA OLE ...................................................................................................................................23 IX. COMPACTACION Y REPLICA DE UNA BASE DE DATOS .......................................................................25 9.1 Compactar una base de datos .....................................................................................................................25 9.2 Crear una réplica de la base de datos .........................................................................................................25 2 ANEXO I. EJERCICIO DE REPASO. CONTROL DE UNA CLÍNICA ...............................................................27 Consultas a la base de datos .............................................................................................................................29 Introducir un nuevo campo.................................................................................................................................30 Introducción de dos campos nuevos..................................................................................................................30 Consulta de actualización de campos................................................................................................................30 Actualización del coste del tratamiento ..............................................................................................................30 Consulta de agrupación .....................................................................................................................................31 ANEXO II. REPASO DE TABLAS, RELACIONES Y FORMULARIOS ...........................................................32 Utilizar listas desplegables.................................................................................................................................33 ANEXO III. ACCESS Y VISUAL BASIC............................................................................................................34 Conceptos básicos de Visual Basic en Access ..................................................................................................34 Cambio del foco del cursor ................................................................................................................................35 Protección de un campo ....................................................................................................................................35 ANEXO IV. INTRODUCCION AL LENGUAJE SQL..........................................................................................37 Contraseñas en la base de datos.......................................................................................................................37 Acceso por usuarios a la base de datos ............................................................................................................38 Crear archivos MDE...........................................................................................................................................39 Access e Internet ...............................................................................................................................................39 Incluir Hipervínculos...........................................................................................................................................39 Importar y exportar en HTML .............................................................................................................................40 3 I. INTRODUCCION 1.1 Qué es una base de datos Una base de datos es una colección de información ordenada que está relacionada entre sí, la cual se encuentra estructurada como una tabla, es decir se conforma por filas y columnas donde las filas se conocen como registros y las columnas como campos. Una base de datos permite gestionar y organizar una serie de datos. Por ejemplo, podemos utilizar Access para llevar la gestión de fichas de los artículos de nuestro almacén, introduciendo, modificando, actualizando, sacando informes por impresora, etc. Además, podemos realizar consultas tales como ¿qué artículo se ha vendido más este mes? ¿qué clientes compran un determinado artículo? ¿cuál es la ganancia total del mes? etc. Access proporciona al usuario de un asistente para la creación de sus bases de datos. El asistente es un programa que nos va guiando paso a paso a la hora de crear una tabla, un formulario, una consulta, etc. 1.2 Iniciar una sesión de Access Cuando ponemos en funcionamiento el programa, nos aparece una pantalla de inicio donde se nos pregunta si queremos: • • • Crear una base de datos en blanco. Utilizar el asistente para crear una base de datos Abrir una base de datos existente Escogeremos la opción Base de datos en blanco. Seguidamente aparecerá la típica ventana donde se nos pide el nombre de la base de datos que se creará. 1.3 La primera base de datos Vamos a comenzar creando una sencilla base de datos que podría servir para gestionar un gimnasio. Esta primera base de datos servirá como ejemplo para comenzar a ver muy por encima los pasos necesarios para trabajar con ella. A lo largo del curso crearemos otra base de datos más completa y veremos opciones avanzadas utilizando esa base de datos. Esta primera base nos irá familiarizando con el programa. Colocaremos un nombre a nuestra base de datos como por ejemplo, Gimnasio y aceptaremos el cuadro de diálogo. Access colocará automáticamente al archivo la extensión MDB. Seguidamente, aparecerá la pantalla inicial para empezar a crear nuestra base de datos: Observemos que en la ventana aparecen unas pestañas en la parte superior: 1.4 Objetos de una base de datos • Tablas: unidad donde crearemos el conjunto de datos de nuestra base de datos. Estos datos estarán ordenados en columnas verticales. Aquí definiremos los campos y sus características. Más adelante veremos qué es un campo. 4 • Consultas: aquí definiremos las preguntas que formularemos a la base de datos con el fin de extraer y presentar la información resultante de diferentes formas (pantalla, impresora...) • Formulario: elemento en forma de ficha que permite la gestión de los datos de una forma más cómoda y visiblemente más atractiva. • Informe: permite preparar los registros de la base de datos de forma personalizada para imprimirlos. • Macro: conjunto de instrucciones que se pueden almacenar para automatizar tareas repetitivas. • Módulo: programa o conjunto de instrucciones en lenguaje Visual basic Una base de datos comienza con el diseño de una tabla. Para ello, es necesario plantearse primero qué datos necesitamos. En nuestro ejemplo, necesitaremos: Matrícula Nombre, apellidos, dirección, etc, del alumno Actividad que realiza Cuota mensual Observaciones Evidentemente que esta base de datos es demasiado sencilla, pero nos servirá para nuestro objetivo. Vamos a ver primero unos conceptos básicos en el diseño de una BD . • Campo: unidad básica de una base de datos. Un campo puede ser, por ejemplo, el Nombre de una persona • Registro: conjunto de campos. Un registro vendría a ser algo así como una ficha. • Base de datos: conjunto de registros total. Este sería el primer registro de una base de datos compuesto por 4 campos: (nombre, apellido1, teléfono y provincia) El número total de registros podemos verlo en la parte inferior (1 de 9) 1.5 Creación de una base de datos Para crear una tabla sigue estos pasos: I. Pulsa Click en el botón Nuevo situado a la derecha de la ventana Aparece una ventana con varias opciones: • • • • Vista Hoja de Datos: podemos introducir directamente los datos Vista diseño: para definir los campos y sus características Asitente para tablas: un programa nos guia automáticamente en la creación de los campos de la tabla Importar y Vincular tablas: para cargar una tabla externa 5 II. Escoge la opción Vista diseño Ahora aparece la ventana principal del diseño de los campos de la BD. Desde aquí podemos definir qué tipo de campos aparecerán en la BD. Observamos tres columnas: Nombre de campo, Tipo de datos y Descripción. Para comenzar: III. Escribe como nombre de campo: Nombre y pasa a la columna siguiente pulsando Intro, con la flecha de desplazamiento o con un simple Click del ratón. En la segunda columna aparece una lista desplegable. Puedes desplegarla y observar que aparecen varias opciones correspondientes a los diferentes tipos de campo que podemos crear. Por ejemplo, nuestro primer campo (Nombre) servirá para introdudir el nombre de una persona, es decir, introduciremos simples caracteres como letras o números. Por tanto, será del tipo Texto. Si por ejemplo definimos un campo del tipo Numérico, nos aseguramos que posteriormente sólo podremos introducir números en dicho campo. Las características de cada campo son las siguientes: • • • • • • • • • • Texto: para introducir cadenas de caracteres hasta un máximo de 255 Memo: para introducir un texto extenso. Hasta 65.535 caracteres Numérico: para introducir números Fecha/Hora: para introducir datos en formato fecha u hora Moneda: para introducir datos en formato número y con el signo monetario Autonumérico: en este tipo de campo, Access numera automáticamente el contenido Sí/No: campo lógico. Este tipo de campo es sólo si queremos un contenido del tipo Sí/No, Verdadero/Falso, etc. Objeto OLE: para introducir una foto, gráfico, hoja de cálculo, sonido, etc. Hipervínculo: podemos definir un enlace a una página Web Asistente para búsquedas: crea un campo que permite elegir un valor de otra tabla o de una lista de valores mediante un cuadro de lista o un cuadro combinado. IV. Introduce los siguientes nombres de campos (observa el tipo de dato de cada uno) Cuando introducimos un campo, en la parte inferior de la ventana aparecen unos campos para definir otro tipo de características. Más adelante se verá cómo modificarlos. Ahora vamos a guardar la tabla. Antes de guardar la tabla vamos a ver qué es un campo clave. Un campo clave es un campo con una característica especial (la clave) que hace que ese campo no se repita en ningun registro de la BD. Un campo clave incrementa además la velocidad de los procesos del tipo Consultas o Formularios. Lógicamente, no podemos introducir como campo clave el campo Nombre, por ejemplo. V. Selecciona con un Click la fila del campo Nombre (el cuadradito gris a la izquierda del nombre) de forma que se seleccione toda la fila. Después, pulsa un Click en el botón Clave principal situado en la barra de menús. Aparecerá como aquí: VI. Para guardar la tabla, se puede cerrar la ventana directamente o bien escoger la opción Archivo - Guardar. Sea como sea, pedirá un nombre para la tabla. Colócale como nombre: Alumnos y acepta. 6 1.6 Introducción de datos La forma de introducir datos es sumamente sencilla: I. Pulsa Click en el botón derecho Abrir Aparece una pantalla en forma de tablas de columnas (al estilo de Excel) donde podemos introducir los datos de los campos. Para desplazarnos, pulsaremos la tecla de tabulación o un click en la siguiente casilla. Para el primer campo no hace falta escribir nada, ya que es autonumérico. Introduce algunos registros para probar. Para pasar de un registro a otro, simplemente pulsa Intro. Para salir de la tabla, utiliza alguno de los dos métodos anteriormente descritos (cierra la ventana o accede a Archivo - Guardar). Una vez guardada la tabla podemos modificar el contenido de los campos pulsando de nuevo el botón Abrir para añadir más registros o modificar los ya existentes. 7 II. OBJETIVO DE UNA BASE DE DATOS Antes de comenzar a crear una base de datos algo más compleja que la de nuestro primer ejemplo, convendría establecer un croquis o borrador en papel de los objetivos de la misma. Si es una base de datos para otra persona o empresa, es conveniente pirmero hablar con los que van a utilizar la BD para determinar qué uso se va a dar de la misma. Si fuese por ejemplo una base de datos para gestionar un comercio, estas preguntas podrían ser: Posibilidad de introducir, modificar, consultar y listar los datos Informes sobre artículos más vendidos Etiquetas postales para clientes Existencias de artículos Pedidos a proveedores, etc A partir de las preguntas, correcciones y apuntes que hagamos, podemos comenzar a construir las tablas que formarán nuestra BD. Es muy importante no introducir 200 campos por ejemplo en una misma tabla, sino dividir la información en varias tablas que puedan gestionarse por separado, pero enlazarse cuando sea necesario. 2.1 Caso práctico La BD que construiremos a continuación tratará de gestionar una ficticia empresa, "EL ABETO" dedicada al alquiler de propiedades. Esta empresa posee dos oficinas situadas en Rubí y Terrassa que abarcarán propiedades de la provincia de Barcelona. Utilizando el ejemplo anterior, ¿qué necesitaremos para construir la DB? Datos del cliente (Nombre, apellidos, etc...) Datos de la propiedad (Tipo de propiedad, metros cuadrados, dirección, número de aseos, etc) Supongamos que hemos hecho un estudio de la situación y decidimos incluir los siguientes campos en la BD: Código de la propiedad (Número que identificará a la propiedad alquilada) Nombre, apellidos, DNI, y dirección Fecha de alquiler del contrato Fecha de expiración del contrato Alquiler mensual que paga el cliente Tipo de propiedad (Casa, apartamento, chalet...) ¿Tiene garaje? Número de aseso, habitaciones, dirección de la propiedad, ciudad, provincia y Código postal Superficie en m/2 Extras (observaciones, extras instalados, situación privilegiada, etc...) Evidentemente, en una BD siempre nos olvidaremos de algún campo, o tendremos que modificar las características de otro, pero esto siempre podremos solucionarlo. Bien, en concreto hemos calculado que necesitamos 20 campos para nuestra base de datos. Si hiciésemos una sola tabla incluyendo todos los campos, podríamos gestionar perfectamente pero sería una barbaridad tener tantos campos en una sola tabla. A veces necesitaríamos modificar o introducir por ejemplo los datos de una propiedad, y los del cliente no nos servirían para nada. Por ello, crearemos dos tablas; una controlará los datos del cliente y otra los de la propiedad. 2.2 Ejercicio I. Crea una BD nueva desde la opción Archivo - Nueva base de datos y colócale como nombre: ABETO Pulsa en el botón Nuevo y escoge la opción Vista diseño A continuación crea los siguientes campos: 8 Observa que hemos colocado como campo clave el campo Código propiedad. De esta forma nos aseguramos que no repetimos dos veces un mismo código. Cada propiedad tendrá un único código que la identificará. Fíjate que a medida que vamos introduciendo nuevos campos, nos aparece en la parte inferior de la pantalla una ventana especial: Desde esta ventana podemos ampliar y mejorar las características de cada campo. Sus opciones son: • • • • • • • • • • Tamaño del campo: define el tamaño máximo de caracteres que podemos introducir. Hasta 255 Formato: dependiendo del tipo de campo, podemos escoger un formato. (P.Ejemplo monetario, fecha, etc....) Máscara de entrada: access coloca una serie de signos automáticamente para facilitarnos la introducción de los datos. P.Ejmplo, podemos introducir una fecha tecleando sólo los números del dia, mes y año, y access nos colocará automáticamente las barras de separación. 12/abr/98 Título: se utiliza para dar un título al campo para posteriormente utilizarlo en formularios Valor predeterminado: si deseamos que por defecto este campo contenga un valor que se repite a menudo para no tener que teclearlo. Regla de validación: podemos obligar al usuario a que introduzca los datos según unos criterios. P.Ejemplo, podemos obligar a que se introduzcan datos numéricos inferiores a una cantidad, etc.... Texto de validación: cuando se incumplen las reglas de validación al introducir los datos, aparece un texto explicativo. Desde aquí podemos definir qué texto aparecerá. Requerido: si esta opción está en Sí, el usuario está obligado a introducir datos. Permitir logitud cero: si esta opción está en Sí, se permite la introducción de cadenas de longitud cero. Indexado: los campos indexados permiten acelerar las búsquedas. Podemos hacer que un dato se repita o no en la tabla con las opciones permitir duplicado si o no. III. A continuación, coloca en Sí la opción Requerido de los campos Nombre y Apellido IV. En el campo Alquiler mensual, cambia las propiedades siguientes: Formato: Moneda Regla de validación: <150000 Texto de validación: El precio de alquiler no debe pasar de 150.000 V. Selecciona el campo Fecha de contrato y sitúa el cursor en la casilla Máscara de entrada. Deberás pulsarlo. Access te dirá si quieres guardar la tabla. Responde Aparecerá un botón en la parte derecha: afirmativamente y colócale como nombre: Clientes. A continuación te aparecerá una ventana con ejemplos de máscaras. Escoge la opción Fecha corta y pulsa en el botón Terminar. En la casilla aparecerán unos símbolos correspondientes a la máscara. VI. Haz exactamente lo mismo para el campo Fecha de expiración VII. Cierra la ventana de Diseño de tabla. Guarda los cambios. VIII. Seguidamente crea una nueva tabla. La llamarás PROPIEDADES y tendrá las siguientes características: 9 CAMPO TIPO TAMAÑO OTROS Código propiedad Texto 3 Campo clave Garaje Sí/No Tipo de propiedad Texto 15 Superficie en m/2 Numérico Entero Dirección Texto 40 Población Texto 20 Provincia Texto 15 Código Postal Texto 5 Habitaciones Numérico Entero Aseos Numérico Entero Extras Memo 10 III. RELACIONES Hemos preparado dos Tablas: una para llevar el control de los clientes y otra para llevar el control de las propiedades. Hemos definido en común un campo: Código de propiedad. ¿Por qué?, Porque necesitamos un campo en común para las dos tablas de forma que en la tabla PROPIEDADES podamos introducir las propiedades que sean, cada una con su código único que las identificará. Pero también necesitamos introducir datos en la tabla clientes de forma que le asignemos una propiedad a cada uno de ellos. Posteriormente podemos realizar consultas y crear formularios de las dos tablas, gracias a este campo en común. De esta forma, podemos introducir datos en la tabla CLIENTES pero asegurándonos que existen en la tabla PROPIEDADES. Así no habrá lugar a equivocaciones. Lo que vamos a hacer es una relación. 3.1 Concepto Una relación es una característica especial de Access que hace que podamos trabajar con varias tablas relacionadas a través de un campo en común. 3.2 Tipos Existen tres tipos de relaciones: • Relación de uno a uno: En este tipo de relación, un registro de la tabla 1 sólo puede estar enlazado con un único registro de la tabla 2 y viceversa. Este tipo de relación es la que menos se utiliza. Un ejemplo podría ser éste, en el que cada persona tiene un único DNI: • Relación de varios a varios: Cada registro de la tabla 1 puede estar enlazado con varios registros de la tabla 2 y viceversa. En el siguiente ejemplo, en la tabla 1 en cada película pueden trabajar varios actores y, en la tabla 2, un mismo actor puede trabajar en varias películas: • Relación de varios a varios: Cada registro de la tabla 1 puede estar enlazado con varios registros de la tabla 2, pero cada registro de la tabla 2 sólo puede estar enlazado con un registro de la tabla 1. En el siguiente ejemplo, un equipo puede tener varios jugadore, pero cada jugador sólo puede jugar en un equipo: 11 3.3 Práctica I. Con la base de datos de nuestro ejemplo abierta, pulsa en el botón Relaciones o bien accede desde Herramientas - Relaciones. Ha aparecido una nueva ventana con las dos tablas preparadas para crear la relación. Arrastra el campo Cödigo de propiedad desde una tabla hasta otra: Aparece una nueva ventana donde podemos definir algunas características de la relación. Observa en la parte inferior que Access nos coloca automáticamente el tipo de relación como de Uno a uno, pues los dos campos son campos clave, por lo que sus datos serán únicos. Otras opciones de esta ventana son: • Exigir integridad referencial: Se utiliza para asegurarnos de que los datos se mantendrán correctamente relacionados cuando se establezca la relación. Si esta casilla se activa, podemos escoger dos opciones más: • Actualizar o eliminar en cascada los campos relacionados hace que cuando se modifique un dato en una de las dos tablas, éste también será modificado en la tabla relacionada. Desde el botón Tipo de combinación podemos acceder a más características de la relación. II. Deja activada la casilla Exigir integridad referencial y sus dos opciones, y seguidamente pulsa en el botón Crear. Aparecen unas líneas que reflejan la relación entre ambas tablas. III. Cierra la ventana contestando afirmativamente a la pregunta de Access de guardar la relación. Ya están a punto las dos tablas para introducir los datos. Para ello, simplemente tendremos que pulsar el botón Abrir y Access mostrará una tabla formada por columnas donde podremos introducir los datos. Mientras introduces un dato en un campo, Access muestra un lápiz en la parte izquierda de la fila. En la introducción de datos es importante no dejar en blanco el campo clave, o Access no nos dejará terminar el proceso. Cuando terminamos de introducir toda una fila, pulsaremos Intro para pasar a introducir el segundo registro. Si queremos cancelar la introducción de datos en una fila, pulsaremos la tecla Escape. 12 IV. MANEJO DE DATOS, TABLAS Y REGISTROS 4.1 Introducir de datos Recuerda que había una relación entre las dos tablas de Uno a Uno, desde la tabla CLIENTES a la tabla PROPIEDADES. Esto significa que primero tendremos que dar de alta algún cliente y posteriormente darlo de alta en la tabla PROPIEDADES. La relación que hemos establecido nos evita la introducción de errores en la tabla PROPIEDADES, ya que, para introducir una propiedad, previamente tendremos que tener dado de alta el cliente en la tabla CLIENTES. 4.2 Añadir registros Para añadir nuevos registros podemos: • • Acceder a la opción del menú Insertar - Nuevo registro Pulsar un click directamente bajo el último registro: Es importante fijarse en el símbolo de la izquierda (el triángulo negro). Cuando estemos introduciendo un dato, el símbolo se convertirá en un lápiz. Al finalizar la introducción de los datos del registro en el último campo, si pulsamos Intro, introduciríamos un nuevo registro. Si estamos introduciendo un registro y queremos cancelar la introducción de los datos, pulsaremos la tecl Escape y el lápiz desaparecerá para volver a visualizar el triángulo negro. 4.3 Modificar regristros Para modificar los datos de un registro, únicamente pulsaremos un click en el interior del campo que queramos modificar. 4.4 Modificar el ancho de una columna Para modificar la anchura de una columna y así poder visualizar el contenido del campo, podemos situar el ratón en medio de la cabecera del campo y "estirar" el ancho. También podemos pulsar un click en la cabecera del campo y la columna entera se seleccionará. Una vez seleccionada, podemos acceder al menú Formato - Ancho de columna - Ajuste perfecto y Access ajustará el ancho automáticamente al contenido de la columna. 4.5 Borrar un registro Si lo que deseamos es borrar un registro, pulsaremos un click en el número de la fila del registro que queramos borrar. Una vez seleccionado, accederemos al menú Edición - Eliminar registro y Access, tras perdirnos confirmación, borrará el registro de la tabla. 13 4.6 Búsqueda de datos Una opción muy útil es la de buscar algún dato en toda la tabla. Existe un botón en la barra de herramientas, o bien podemos acceder al menú Edición - Buscar. Nos aparecerá la típica ventanita para buscar una frase. Podemos decirle a Access que busque en el registro, en toda la tabla, de arriba a abajo, etc. 4.7 Ordenamiento de datos Esta opción es muy útil, ya que a veces nos interesará un listado por ejemplo, de la tabla CLIENTES ordenada por fecha de expiración del contrato, o un listado de la tabla PROPIEDADES ordenada por Tipos de Propiedad, etc. Simplemente tenemos que situar el cursos dentro de un campo por el que queramos ordenar la tabla. Seguidamente podemos pulsar los botones Orden Ascendente u Orden Descendente, según queramos ordenar. También podemos acceder desde el menú Registros - Ordenar. Access ordenará la tabla por ese campo. Ordenar la tabla por un campo en concreto no significa que Access cambie la posición de los campos de la tabla. De hecho, si después de ordenar intentamos cerrar la tabla, Access nos avisará si queresmo guardar los cambios, es decir, si queremos que la tabla se guarde con el nuevo orden. 4.8 Copiar una tabla Es muy importante crearse copias de todo lo que consideremos importante. Es pues, necesario, crearse una copia de alguna tabla dentro de la propia base de datos. Ten en cuenta que en Access, hay opciones un poco... digamos... delicadas, que pueden hacer que los datos de la base cambien por completo. Si tienes una copia, NO PROBLEM. Si no tenías copia, lo más seguro es que comienzes a acordarte del tio segundo de Billy Puertas o quien sabe. Para hacerte una copia de una tabla, debes tener cerrada la tabla. Desde la pantalla principal: • • • • Selecciona la tabla Pulsa el botón Copiar de la barra de herramientas, o bien Edición - Copiar Pulsa el botón Pegar de la barra de herramientas, o bien Edición - Pegar Cuando Access te pida un nuevo nombre, escribe el que creas oportuno. 14 V. CONSULTAS 5.1 Concepto En muchas ocasiones tendremos la necesidad de saber qué clientes viven en tal o cual ciudad, cuantas propiedades del tipo chalet existen, quién paga más de 100.000 pts de alquiler, o cualquier otra pregunta que se nos ocurra. Evidentemente, tenemos el listado completo en forma de tabla, pero según el tipo de preguntas que queramos realizar a la BD nos puede llevar bastante tiempo localizar algún dato en concreto. Para ello están las consultas. Las consultas son preguntas preparadas que podemos diseñar para utilizar cuando sea necesario. Casi todo el trabajo en Access se basa en las consultas. Si queremos hacer un informe de unos datos determinados, podemos hacerlo a partir de una consulta. Si queremos un listado por pantalla o por impresora, lo haremos de una consulta. 5.2 Tipos de consultas Las consultas pueden ser de varios tipos: • • • • Consulta de selección: es la más utilizada: Permite ver los datos de una o varias tablas, analizarlos, imprimirlos, etc. Consultas de tablas de referencia cruzadas: presenta los datos en forma de filas y columnas Consultas de acciones: se utilizan para crear nuevas tablas a partir de consultas, eliminar o actualizar registros, añadir o modificar registros, etc. Consultas de unión: combinan campos coincidentes o duplicados de una o varias tablas 5.3 Ejemplo Vamos a crear una sencilla consulta. Imaginemos que queremos saber algunos datos de los inquilinos que tienen alquilado un Apartamento. No queremos saber los datos de todos los campos: sólo algunos. I. Con la Base de Datos ABETO.MDB abierta, pulsa click en la pestaña de Consultas: II. Pulsa click en el botón Nuevo. Te aparecerá una ventana donde podremos escoger el tipo de consulta a realizar. III. Escoge la opción Vista Diseño y acepta Seguidamente aparece una pequeña ventana para escoger la tabla o tablas sobre las que realizar la consulta. IV. Selecciona la tabla CLIENTES y pulsa en Agregar V. Haz lo mismo con la tabla PROPIEDADES VI. Pulsa el botón Cerrar Nos encontramos en la pantalla de Vista Diseño de la consulta. Desde esta pantalla podemos escoger qué campos queremos incluir en la consulta, así como otras opciones (orden, criterios de consulta, etc). Supongamos que queremos realizar una consulta sólo de los campos Código de propiedad, Alquiler, Nombre y Apellidos de la tabla CLIENTES, y el campo Tipo de Propiedad de la tabla PROPIEDADES. Lo que debemos hacer es "cargar" el campo que necesitemos, desde la casilla de la tabla hasta la cuadrícula inferior. Vamos a hacerlos de dos formas: 15 I. Pulsa doble click en el campo Código de propiedad de la tabla CLIENTES El campo ha de aparecer en la parte inferior. II. "Arrastra" el campo Nombre de la tabla CLIENTES a la primera casilla de la segunda fila, al lado del campo anterior. III. Ahora carga utilizando el método que quieras, los campos Apellidos y Alquiler de la tabla CLIENTES, y el campo Tipo de propiedad de la tabla PROPIEDADES. Ahora vamos a ver el resultado: I. Pulsa click en el botón Vista, situado en la barra de botones superior izquierdo. En pantalla aparece un listado con los campos de las dos tablas, tal y como hemos preparado. Podríamos ahora volver a la vista Diseño pulsando el mismo botón Vista que ahora aparece como una regla azul, pero lo que vamos a hacer es guardar la consulta. II. Cierra la ventana de la consulta. Access te pedirá si quieres guardarla. Responde afirmativamente y ponle como nombre: Consulta sencilla. Si quisiéramos modificar la consulta, deberíamos pulsar el botón Diseño. Si quisiéramos ejecutarla para ver su contenido, pulsaremos el botón Abrir. 5.4 Consultas con criterios La consulta anterior fue una consulta normal, de todos los registros de la Base de Datos. Una de las mayores ventajas de las consultas es la de introducir criterios de consulta. Mediante los criterios podemos seleccionar registros que cumplan unas condiciones determinadas. Veamos cómo crear una consulta que nos muestre datos sobre los inquilinos que pagan más de 85.000 pts de alquiler mensual. I. Crea una nueva consulta de la tabla CLIENTES y carga los campos Código de propiedad, Nombre y Alquiler mensual II. En la casilla Criterios del campo Alquiler mensual, escribe: >85000 III. Visualiza el resultado de la consulta con el botón Vista Observa que aparecen los tres campos de los clientes que pagan más de 85.000 pts al mes IV. Vuelve al modo Diseño desde el mismo botón V. Agrega el campo Oficina vendedora y añade el siguiente criterios: VI. Visualiza el resultado En este último caso tenemos dos condiciones que se tienen que cumplir. Sólo veremos los campos de los registros que cumplan las dos condiciones: que pagen más de 85.000 pts y cuya oficina vendedora esté en la ciudad de Terrassa. VII. Guarda la consulta con el nombre: Oficina Terrasa - Más de 85000 16 5.5 Expresiones En las consultas que hemos hecho, hemos introducido expresiones para los criterios muy sencillas. Entre los tipos de expresiones avanzadas podemos utilizar para los criterios se encuentran: • Expresiones de fecha: Podemos utilizar operadores de comparación típicos de programas informáticos como mayor que, menor que, igual, distinto, etc. Para la cuestión de fechas, podemos utilizar esos mismo operadores. Por ejemplo, imaginemos que queremos saber los registros con un campo cuya fecha se menor al 12 de Junio del 97. Podemos hacerlo de las siguientes formas: <12 Junio 1997 <#12/06/97# <12 Jun 97 <12-Jun-97 <12/06/97 • Expresiones de números, moneda y contador: Cuando utilizemos campos de este tipo, tan sólo tendremos que escribir los daots y si contienen decimales, el separador de decimales. • Expresiones de texto: En este tipo de criterios, bastara con escribir el texto utilizando mayúsculas o minúsculas indistintamente. • Expresiones lógicas tipo Sí/No: Para valores tipo Sí podemos escribir las siguientes expresiones en la casilla de criterios: "Sí" "Verdadero" "Activado" "-1" Para valores del tipo No podemos usar las siguientes expresiones: "No" "Falso" "Desactivado" "0" 5.6 Caracteres comodín Como en MS-DOS o la mayoría de programas de Windows, podemos incluir los dos caracteres comodín (el asterisco * y el interrogante ?) para crear una expresión. El interrogante puede sustituir un solo caracter en la posición que esté. El asterisco podrá sustituir a más de un caracter en la posición en que se encuentre. Por ejemplo: M?? buscará los datos que comienzen por M y luego tengan dos letras más ?a?a buscará los datos cuya segunda y cuarta letra sea una a */12/97 buscará los datos de cualquier dia del mes de diciembre del 97 An* buscará los datos de lo que comienze por la palabra An 17 VI. CAMPOS CALCULADOS 6.1 Concepto y ejemplo En ocasiones tendremos la necesidad de realizar operaciones matemáticas con algún campo. Podemos crear campos vacíos y rellenarlos con datos provenientes de alguna operación entre dos o más campos. Lo que vamos a hacer a continuación es lo siguiente: Supongamos que hemos subido la cuota mensual a todos los inquilinos en 500 pts. Es evidente que sería una paliza modificar uno a uno todos los campos de los precios. Realizaremos una operación matemática: I. Abre la Base de Datos Abeto.MDB y sitúate en la pestaña de las Consultas II. Crea una nueva Consulta en modo Vista Diseño III. Carga la tabla Clientes IV. Carga los campos Código de Propiedad y Alquiler mensual V. En la barra de herramientas superior hay un botón llamado Tipo de consulta. Ábrelo y escoge el tipo Actualización VI. Sitúa el cursor en la casilla Actualizar a y escribe: VII. Cierra la consulta. Guardala con el nombre Aumento de precio en 500pts Observa que el icono de la nueva consulta ha cambiado. Esta es una consulta de actualización. Lo que significa que cuando la ejecutemos, cambiará los datos de la tabla. Por eso hemos de tener cuidado en preparar adecuadamente la consulta; un error podría traer consecuencias imprevisibles. Observa que hemos puesto entre corchetes el nombre del campo Alquiler mensual al que hemos sumado el número 500. No vendría mal hacerse una copia de la tabla Clientes por si acaso. I. Selecciona la consulta y pulsa en el botón Abrir. Access nos avisará de que se van a modificar datos de una tabla. Acepta el mensaje que aparece. II. Access vuelve a pedir confirmación con un segundo mensaje. Vuelve a aceptar. III. Ve a la pestaña Tablas y abre la tabla Clientes. Observa el campo Alquiler mensual. Tiene que aparecer con un incremento de 500 pts. 6.2 Creación de una tabla nueva con campos de otras tablas A continuación vamos a ver cómo podemos crear una tabla nueva con campos proveniente de otras tablas. Imaginemos que necesitamos una nueva tabla con sólo algunos campos de las otras dos (Clientes y Propiedades). Evidentemente sería una "pasada" crearla nueva e introducir los datos uno por uno. Por ello, vamos a tomar campos de las dos tablas y construir una nueva. I. Crea una consulta nueva escogiendo las dos tablas. II. Añade de la tabla Clientes, los campos Nombre, Apellidos, y Alquiler mensual III. Añade de la tabla Propiedades los campos Tipo de propiedad, Dirección, Población y Provincia IV. En la barra de herramientas superior hay un botón llamado Tipo de consulta. Ábrelo y escoge el tipo Consulta de creación de tabla. V. Se pedirá un nombre para la nueva tabla que se creará más tarde. Pon el nombre: Clientes y Propiedad y acepta. VI. Cierra la consulta. Grábala con el nombre: Consulta de creación de tabla VII. Observa que aparece otro tipo de icono. VIII. Selecciona la consulta recién creada y ábrela. Access te avisa que se creará una nueva tabla. Acepta. IX. Ve a la pestaña de Tablas y observa que la nueva tabla se ha creado. 18 VII. FORMULARIOS 7.1 Creación de Formularios utilizando el Asistente Un formulario es un objeto de Access que nos permitirá introducir y modificar los datos de una forma más "amable" y cómoda. Los formularios tienen la ventaja de poder: • • • • Mostrar datos de varias tablas al mismo tiempo Calcular campos Crear y utilizar gráficos Utilizar fuentes especiales, colores, títulos, etc. Los formularios podemos crearlos mediante un asistente o bien en blanco y diseñarlos a nuestra medida. Para ver cómo se crean, hemos de estar situados con una base de datos abierta en la pestaña Formularios. y pulsar el botón Nuevo. Nos aparecerá una ventana pidiéndonos el tipo de formulario a crear y la tabla o consulta a partir de la cual se creará. En esta primera lección dedicada a los formularios, vamos a crear uno sencillo utilizando un assitente que nos irá guiando en su creación. I. Con nuestra base de datos abierta (Abeto.MDB) accede a Formularios Nuevo y escoge la tabla Clientes y la opción Asistente para formularios II. Acepta la ventana. En esos momentos, se ejecutará un asistente de Access que nos irá guiando paso a paso en la creación del formulario. En el primer paso, Access nos pide qué campos queremos incluir en el formulario. En la parte izquierda aparece una ventana con los campos de la base de datos y en la parte dereche otra con los campos que se incluirán en el formulario. En medio de las dos ventanas aparecen unos botones que servirán para incluir o borrar campos desde la ventana izquierda a la ventana derecha. Carga el campo seleccionado desde la ventana izquierda a la ventana derecha Carga todos los campos desde la ventana izquierda a la ventana derecha Borra el campo seleccionado de la ventana derecha Borra todos los campos de la ventana derecha III. Carga todos los campos y pulsa el botón Siguiente. En el siguiente paso, Access nos pregunta qué tipo de formulario y la distribución de los campos a través del mismo. Si pulsas un click en las diversas opciones, verás una simulación en la ventana de la izquierda de cómo quedará. IV. Acepta el tipo En columnas y pulsa el botón Siguiente Para los fondos, prueba igual que antes el estilo que te guste. En nuestro caso, escogeremos el estilo Mundo V. Escoge el estilo que prefieras y pulsa Siguiente VI. Acepta el último paso (nombre del formulario) con el botón Termimar, y el formulario ya estará creado. La utilización del formulario es sumamente sencilla. Podemos observar que cada registro se visualiza como una ficha independiente. En la parte inferior del formulario se aprecian unos botones: Estos botones sirven para: Desplazarse al primer registro, desplazarse hacia atrás, hacia adelante, al último registro y añadir un nuevo registro. 19 Desde el formualrio podemos modificar el contenido de un campo, borrarlo, añadir nuevos registros, y todos los cambios que realizemos en el formulario, se realziarán en la tabla relacionada, así como todos los cambios efectuados en la tabla, se visualizarán si abrimos el formulario. Podemos cerrar el formualrio, buscar un dato (Edición Buscar), borrar un registro completo (Edición - Eliminar registro), etc. Si tenemos el formulario cerrado, para utilizarlo sólo debemos pulsar el botón Abrir. De igual forma, con el botón Diseñar accedemos al diseño del formulario, que es una pantalla especial donde podemos cambiar las posición de los campos, características, añadir campos calculados, títulos, colores, etc, pero eso ya es otra lección. De momento, puedes probar a crear varios formularios escogiendo distintas opciones del primer cuadro del asistente (tabular, columnas u hoja de datos). 7.2 Creación y Personalización de Formularios Paso a Paso En el punto anterior vimos cómo crear con el asistente de Access un formulario automático. En este punto vamos a ver cómo se puede personalizar un formulario. Crearemos un formulario de la tabla Propiedades de forma manual: I. Con la base de datos Abeto.MDB abierta y situados en la pestaña Formularios, pulsa el botón Nuevo. II. Escoge de la lista la tabla Propiedades y como tipo de formulario escoge Vista Diseño. Aparece una ventana en blanco (o en gris) donde podemos "cargar" los campos de la tabla y situarlos a nuestro gusto. Observa que la zona gris es la zona que veremos cuando estemos utilizando el formulario. Esta zona se puede ensanchar con el mouse "estirando" su esquina inferior derecha para que ocupe más zona de pantalla. Para cargar los campos existe un botón situado en la barra de herramientas llamado Lista de campos. desde el que podemos escoger el campo que queramos. III. Pulsa dicho botón y te aparecerá una pequeña ventana con los nombres de los campos IV. "Arrastra" el primer campo hasta situarlo más o menos en la esquina superior izquierda: Si sitúas el puntero del ratón sobre el campo cargado, verás que aparece una mano si está sobre un borde del campo. Esta mano sirve para mover el campo. También podemos observar unos controles (puntitos negros) para modificar el tamaño del campo. Es importante anotar que hemos cargado dos cosas: a la izuquierda el nombre del campo y a su derecha (en blanco) el campo en sí. Observa también que posicionando el puntero del ratón sobre uno de los dos cuadrados más grandes, aparece un dedo que servirá para mover sólo una parte del campo (el nombre o el campo) V. Termina de cargar el resto de campos y sitúalos de forma más o menos coherente. 20 Observa que en las barras de herramientas que disponemos en esta pantalla, hay botones para cambiar los colores de los campos, tipos de letra, bordes, efectos de relieve, etc. Puedes seleccionar algún campo y hacer diferentes pruebas con esta barra. EL formulario puede quedar más chulo, pero tampoco hay que abusar de demasiados colorines de forma que quede demasiado "chillón". Cuando te guste el resultado, puedes hacer una prueba para ver cómo quedará con el botón Vista situado en la parte superior izquierda de la barra de herramientas. Para volver a la pantalla de diseño, pulsa el mismo botón. Puedes cerrar el formulario y ponerle un nombre (Formulario de Propiedades, p.ej). Si tienes que realizar alguna acción con varios campos a la vez (cambiar el color, mover, borrar, etc) puedes hacerlo seleccionándolos con el mouse en forma de selección de ventana como harías con cualquier otro objeto. También puedes ir pulsando un click uno a uno manteniendo pulsada la tecla Shift (mayúscula). Existe otra barra de herramientas que se activa pulsando el botón Cuadro de Herramientas. Ésta sirve para crear textos, títulos o controles especiales como listas desplegables, botones programables, etc. Veamos un ejemplo. En esta pantalla hay un campo llamado Tipo de Propiedad cuyo contenido siempre es fijo, es decir, que siempre será un Chalet, Casa o Apartamento. Cuando estemos introduciendo un registro nuevo o bien cuando estemos modificando alguno existente, sería un "latazo" teclear siempre el contenido del campo. Lo que haremos será crear una lista desplegable para poder seleccionar el contenido de una forma más sencilla y rápida. I. Debes activar la barra Cuadro de herramientas desde el botón correspondiente La lista desplegable que vamos a crear podemos hacerla de dos formas: con un asistente que nos guiará paso a paso o bien "a mano". Observa que en la barra que tenemos activa (Cuadro de herramientas) hay un botón con forma de varita mágica llamado Asistente para controles. Si está pulsado (hundido) significa que está activado, por lo que si creamos la lista desplegable, se pondrá en marcha automáticamente el asistente. Para crear un control manualmente, hemos de desactivarlo pulsando un click. I. Asegúrate de que el botón mencionado está desactivado y pulsa después en el botón Cuadro combinado de la misma barra de herramientas. II. Dibuja en la zona de los campos un rectángulo no muy grande. No te preocupes del tamaño; se puede cambiar posteriormente. III. Te habrá aparecido un campo sin nombre. Ahora hay que configurarlo. IV. Accederemos a las propiedades del campo. Para ello, pulsa doble click en un borde del campo, o bien pulsa el botón Propiedades de la barra de herramientas superior. También puedes acceder desde el menú VerPropiedades. Te aparecerá una ventana especial. Desde esta ventana podemos cambiar las propiedades de cualquier campo, como el nombre, color, eventos especiales, etc. V. Cambia los datos de la ventana de la siguiente forma: Nombre: Tipo de propiedad. Este será el nombre de la etiqueta que se visualiza a la izquierda del campo Origen del control: Tipo de propiedad (puedes escogerlo de la lista desplegable) La propiedad Origen del control define qué campo real de la tabla almacenará el valor introducido posteriormente. Tipo de origen de la fila: Lista de valores (puedes escogerlo de la lista desplegable) Origen de la fila: Chalet;Casa;Apartamento (atención al punto y coma separador) Aquí definimos una lista de valores. En Tipo de origen de la fila podríamos escoger una tabla o consulta o bien escribir a mano los datos de la lista como hemos hecho. Estos datos hay que escribirlos separados por punto y coma. VI. Cierra la ventana de Propiedades y accede a las propiedades del nombre del campo para cambiarlo. En vez de Cuadro combinado... colócale como nombre: Tipo de popiedad. 21 VII. Cierra el cuadro, ajusta si es necesario el tamaño y posición del campo y realiza una vista previa del formulario. Prueba a desplegar la lista recién creada confirmando que funciona. 7.3 Control de Cálculo de Campos en un Formulario En este punto vamos a ver cómo colocar un control de cálculo de campos en un formulario. Lo que haremos será utilizar el formulario de la tabla Clientes que hicimos con el Asistente para formularios. I. Con la ventana de formularios a la vista, selecciona el formulario Clientes y pulsa el botón Diseñar. Observa la siguiente imagen: hemos ampliado un poco la zona de diseño y movido el campo Alquiler. Vamos a insertar un campo calculado para el IVA y otro para el total del alquiler. Podríamos crear dos campos nuevos para ese fin. Para ello, tendríamos que ir al diseño de la tabla e insertarlos como dos campos nuevos del tipo numérico. En este caso no los crearemos, sino que insertaremos dos campos independientes que lo único que harán será realizar un cálculo matemático de otros campos. II. Hemos añadido dos casillas de texto con el botón Cuadro de texto y hemos cambiado el nombre de las etiquetas por el de IVA 16% y TOTAL alineando los campos. Para cambiar el nombre de la etiqueta, debes seleccionarla y pulsar doble click para acceder a sus propiedades. III. Ahora debes seleccionar con un click el campo gris del IVA 16% y acceder a sus propiedades (con doble click, o con el botón derecho y la opción Propiedades) IV. En el cuadro que te aparece, sitúa el cursor en el campo Origen del control. Aquí definimos de donde vienen los datos. Éstos pueden venir de algún campo de alguna tabla, o bien pueden ser el fruto de alguna operación de cálculo con campos. A la derecha verás dos cuadraditos. Pulsa el de la derecha (puntos suspensivos) V. Aparecerá otra ventana. Se trata del Generador de Expresiones. Aquí podemos definir fórmulas o funciones que realizan ciertas operaciones. VI. Escoge de la ventana izquierda las opciones Formularios - Formularios cargados - Clientes. VII. Escoge de la ventana central Alquiler mensual VIII. Pulsa el botón Pegar IX. Pulsa click en la ventana superior y termina de escribir la fórmula: [Alquiler mensual] *16/100 X. Cierra la ventana del generador de expresiones desde el botón Aceptar XI. Abre la lista del campo Formato y escoge la opción Moneda XII. Cierra la ventana de propiedades XIII. Prueba una vista previa desde el botón Vista situado en la barra de herramientas en la parte superior izquierda Observa que el campo tiene que aparecer ya con el cálculo hecho: XIV. Configura tú mismo el campo TOTAL con la fórmula: [Alquiler mensual] + [IVA] Esto significa que el último campo sume el contenido del campo Alquiler mensual más el campo IVA. Este último será el campo de texto que creamos anteriormente. Es importante señalar que el nombre de IVA se lo hemos puesto al campo desde la ventana de propiedades. Si no es así, Access no lo encontrará. El resultado final será que cuando introduzcamos el precio de la propiedad, los dos campos que acabamos de crear mostrarán automáticamente el cálculo del impuesto de IVA. Es importante señalar que los dos últimos campos nos existen como tales en la tabla Clientes ni en la de Propiedades. Son sólo campos calculados. 22 VIII. TECNOLOGIA OLE La tecnología OLE (Object Linking and Embedding) es un sistema de compartir ficheros entre aplicaciones que nos permitirá transferir información de una a otra. A través de esta tecnología podremos, por ejemplo, insertar un objeto gráfico en un formulario de Access como si fuera un campo más. Estos objetos pueden insertarse de dos formas: • Incrustación: el objeto es almacenado en la base de datos, pero si el objeto original sufre algún cambio, en la base de datos no se reflejará el cambio. • Vinculación: el objeto es almacenado igual en la base datos, pero se establece un vínculo con el archivo original de forma que si modificamos el objeto desde el formulario, los cambios afectarán al archivo original. Tanto si incrustamos como si vinculamos, el objeto debe crearse en el formulario mediante el control llamado marco de objeto. Podemo utilizar estas opciones para insertar una imagen de una persona como si fuese un campo más de la base de datos. Existen dos tipos de marcos: • Marco de objeto independiente: para incluir objetos que no están almacenados en una tabla. Por ejemplo, un logotipo. • Marco de objeto dependiente: para incluir gráficos y objetos OLE que están almacenados en la tabla como un campo más. En el siguiente ejemplo vemos un marco de objeto dependiente en sus vistas de formulario y de diseño pertenecientes a la base de datos de ejemplo que contiene Access (Neptuno). A continuación te mostramos algunos consejos para saber cuando utilizar cada uno de los diferentes tipos de marcos: Tipo de marco Tipo de enlace Objeto independiente Incrustación Objeto independiente Vinculación Objeto dependiente Incrustación Objeto dependiente Vinculación Se usa... Para añadir un objeto que forme parte de un formulario, pero que no dependa de ningún campo y que sea independiente de su original. Por ejemplo, un gráfico en un informe Objeto que forma parte del formulario pero no depende de ningún campo. Por ejemplo, una hoja de cálculo que se actualize cada vez que se modifique el archivo original Gráfico en campos de una tabla. Por ejemplo, una imagen de una persona que puedan modificarse y visualizarse desde el formulario Objetos en un campo de la tabla, pero que se mantienen en archivos separados. 23 Existen dos botones en el modo de vista de Diseño de formulario para crear este tipo de controles: Marco de objeto dependiente y Marco de objeto independiente. Ambos botones están situados en las barras de herramientas. En el siguiente ejemplo, tenemos una tabla en la parte izquierda con tres campos; Nombre (tipo Texto), Apellidos (tipo Texto) y Foto (tipo OLE). En el modo de introducción de datos en tabla, en el campo Foto hemos insertado un gráfico (Insertar - Objeto) que teníamos almacenado en formato BMP. Posteriormente, en el modo de Diseño de formulario hemos incluído el campo como uno más. En la ilustración de la derecha puede observarse que el gráfico izquierdo a modo de logotipo está creado con la opción Marco de objeto independiente, sin embargo, el gráfico de la derecha corresponde al campo Foto de la tabla. En este caso, aparecerá la foto de cada persona. 24 IX. COMPACTACION Y REPLICA DE UNA BASE DE DATOS 9.1 Compactar una base de datos Si borras, modificas y crear tablas a menudo, la base de datos puede fragmentarse, lo que provoca un uso deficiente del espacio en disco. Al compactar la base de datos, se hace una copia de la misma y se reorganiza el espacio que ocupa en el disco. Es algo parecido a la acción del comando Defrag Para compactar la base de datos actual: I. Accede Herramientas - Utilidades de la base de datos - Compactar base de datos. Para compactar una base de datos que no está abierta en Access I. Cierra la base de datos actual. II. Accede Herramientas - Utilidades de la base de datos - Compactar base de datos. III. En el cuadro de diálogo Base de datos a compactar, especifica la base de datos que deseas compactar y haz clic en Compactar. IV. En el cuadro de diálogo Compactar la base de datos en, especifique el nombre, unidad y carpeta donde desea almacenar la base de datos compactada. V. Haz clic en Guardar. Si utilizas el mismo nombre, unidad y directorio y si la base de datos se compacta con éxito, Access reemplazará el archivo de origen por la versión compactada. Importante: Si eliminas registros del final de una tabla que contiene un campo Autonumérico, cuando compactes la base de datos, Access te dará al próximo campo Autonumérico el valor del último contador sin borrar, más 1. La compactación de una base de datos de Access de una versión previa no la convierte al formato de Access 97. 9.2 Crear una réplica de la base de datos Vimos cómo se hacía una copia de una tabla para obtener un duplicado de seguridad. Ahora veamos cómo hacer una copia de una base de datos completa. Imaginemos que no sólo queremos duplicarla para tener una copia de seguridad, sino también para que otros usuarios la utilicen. Imaginemos que varios usuarios situados en distintos lugares van a utilizar la base de datos. Podemos crear lo que se llama una Réplica de la base de datos y posteriormente unir los datos introducidos desde todas las réplicas que se hagan. Cada réplica es miembro de un conjunto de réplicas que se pueden sincronizar con otras réplicas del mismo grupo, es decir, los cambios realizados en una réplica se aplican a las otras réplicas y al Diseño principal o base de datos original. Veamos cómo crear una réplica de nuestra base de datos: I. Abre la base de datos ABETO (o de cualquier base de datos que tengas) II. Accede a Herramientas – Réplica – Crear réplica. Aparecerá un mensaje de aviso: III. Contesta afirmativamente. Se mostrará otro mensaje que nos avisa que la base de datos original se convertirá en el Diseño principal. Además se indica el nombre con el que se guardará la réplica y la carpeta donde se almacenará ésta. IV. Pulsa en Sí 25 V. Acepta el nombre que ofrece Access Al aceptar, Access crea la réplica y nos muestra un mensaje que la única copia donde podremos modificar la estructura original será la copia original de la base de datos. Sin embargo, los datos podremos editarlos en cualquiera de las réplicas que hayamos realizado. VI. Acepta el último cuadro de diálogo que ha aparecido. Ahora fíjate que en los nombres de las tablas aparece un nuevo icono y en el título aparece la palabra Diseño principal. VII. Añade un nuevo cliente en la base de datos principal para probar la sincronización entre bases de datos. VIII. Accede a Herramientas – Réplica – Sincronizar ahora IX. Acepta el cuadro de diálogo que aparece. Por último, Access avisa que no serán visibles los cambios hasta que cerremos y abramos la tabla. X. Acepta XI. Abre la tabla Réplica de ABETO y observa los cambios. Hay que señalar que en el proceso de sincronización de datos entre réplicas primero se actualizan los cambios en el diseño y después en los datos. El intercambio entre dos réplicas puede ser en los dos sentidos, es decir, de la principal a la réplica o viceversa. Por último, después de sincronizar dos réplicas, es conveniente revisar la base de datos en busca de posibles errores desde la opción Herramientas – Réplica – Resolver conflictos. 26 ANEXO I. Ejercicio de repaso. Control de una clínica Realizaremos un ejercicio general de repaso. Crearemos una base de datos que controlará una supuesta clínica. Necesitaremos tres tablas para el control de los pacientes, ingresos en clínica y médicos. Relacionaremos las tablas, crearemos consultas, formularios, y repasaremos conceptos. La clínica "SAN PATRÁS" necesita llevar un control informatizado de su gestión de pacientes y médicos. Para ello se crearán tres tablas con las siguientes características: • • • Tabla PACIENTES: llevará un control de los datos de los pacientes como el Nº de S.S., Nombre, Apellidos, Nº de Historial, etc. Tabla INGRESOS: llevará el control de la fecha del ingreso, número de planta, número de cama, diagnóstico, etc. Tabla MEDICOS: código del médico, Nombre, Apellidos, Especialidad, etc. A continuación tienes las características de cada campo de las tablas: TABLA PACIENTES: Campo N Seguridad Social Nombre Apellidos Domicilio Población Provincia Código Postal Teléfono Número de Historial Sexo Tipo Texto Texto Texto Texto Texto Texto Texto Texto Texto Texto Largo 15 15 30 30 25 15 5 12 9 1 Otros Campo Clave Regla de validación: "H" o "M" TABLA MEDICOS: Campo Codigo identificación Nombre del Médico Apellidos del Médico Especialidad Fecha de ingreso Cargo Número de Colegiado Observaciones Tipo Texto Texto Texto Texto Fecha Texto Número Memo Largo 4 15 30 25 Otros Campo Clave Máscara fecha corta 25 27 TABLA INGRESOS: Campo Número de Ingreso Número de Historial Fecha de Ingreso Código de Identificación Número de planta Número de cama Alérgico Observaciones Coste del tratamiento Diagnóstico Tipo Autonumérico Texto Fecha Texto Número Número Sí/No Memo Número Texto Largo Otros Campo Clave 9 Máscara fecha corta 4 Formato Moneda 40 Este será el aspecto que tendrán las relaciones de las tablas: Hemos creado una relación de Uno a Varios del campo Número de Historial de las tablas Pacientes e Ingresos. Esto significa que primero debemos introducir los datos del paciente y luego los de la tabla de Ingresos. La relación uno a varios nos permitirá introducir varios ingresos para un mismo paciente, pero siempre que primero el paciente esté dado de alta en la tabla Pacientes. Asímismo, hemos definido como campo clave de la tabla Pacientes el campo Número de Historial porque serán datos únicos que no se repetirán en la misma tabla. Como campo clave de la tabla Ingresos no hemos escogido el mismo campo Número de Historial, sino el campo Número de Ingreso, ya que cada número de ingreso será único. Además, no nos permitiría introducir más de un Número de Historial en Ingresos ni establecer la relación. Como campo clave de la tabla Médicos hemos escogido el campo Código de identificación y hemos establecido una relación de uno a varios con el mismo campo de la tabla Ingresos. Esto significa que primero hemos de introducir los datos del médico, y posteriormente, en la tabla Ingresos asignarle el ingreso de un paciente a un médico determinado. Resumiendo: primero introduciremos los datos de los médicos y de los pacientes. Posteriormente, cuando se produzca un ingreso, asignaremos un número de ingreso (único) a un paciente (Número de Historial) y le asignaremos un médico (Código de Identificación). En la tabla Ingresos podremos introducir varios pacientes, y asignárselo a uno de los médicos de la tabla Médicos. Veamos una parte de la tabla Pacientes con sus datos: N Seguridad Social Nombre Apellidos Domicilio Población 08/7888888 José Eduardo Romerales Pinto C/ Azorín, 34 3º Móstoles 08/7234823 Ángel Ruíz Picasso C/ Salmerón, 212 Madrid Provincia Código Postal Teléfono Número de Historial Sexo Madrid 28935 91-345-87-45 10203-F H Madrid 28028 91-565-34-33 11454-L H 28 Veamos una parte de los datos de la tabla Médicos: Código de Ident. Nombre del Médico Apellidos del Médico Especialidad Fecha de Ingreso AJH Antonio Jaén Hernández Pediatría 12-08-90 CEM Carmen Esterill Manrique Psiquiatría 13-02-92 Cargo Número de Colegiado Observaciones Adjunto 2113 Está próxima su retirada Jefe de sección 1231 Veamos finalmente una parte de los datos de la tabla Ingresos: Número de Ingreso Número de Hist. Fecha de Ingreso Código de Identi. Número de planta 1 76327-H 23/01/94 SVT 5 2 1212-A 24-02794 CSM 1 Número de cama Alérgico Observaciones 121 No 23/01/94 5 Sí Alérgico a la penicilina Una vez los datos introducidos, vamos a realizar varias consultas a la base de datos. Daremos una serie de supuestos y la solución de cómo se diseña la consulta. Consultas a la Base de Datos A continuación mostraremos unos supuestos de consultas y su solución. 1) Necesitamos un listado de los nombres de los médicos y su especialidad. I. Ir a la pestaña Consultas - Nuevo - Vista Diseño y agregar la tabla Médicos II.Visualizaremos su contenido con el botón Vista previa para asegurarnos de que funciona correctamente y cerraremos la Consulta grabándola. 2) Qeremos saber los el Nombre y Apellidos de los pacientes que ingresaron entre Enero y Marzo del 94 y que son alérgicos. 3) Queremos saber los Nombres y Apellidos de los pacientes que viven en Getafe o Alcorcón. 29 Introducir un nuevo campo Ahora debemos introducir un nuevo campo en la tabla INGRESOS llamado Fecha de Alta que controlará la fecha en la que el paciente es dado de alta de la clínica. Para ello: I. Accede a la pestaña de Tablas, selecciona la tabla INGRESOS y pulsa en el botón Diseño. II. Pulsa un click a la izquierda del campo Código de Identificación. Su fila deberá quedar resaltada en su totalidad. III. Abre el menú Insertar y escoge la opción Filas. IV. Pulsa un click en la casilla del campo y escribe: Fecha de Alta V. Dota al campo del formato Fecha corta a través de la máscara VI. Cierra la tabla (guardándola) VII. Ahora deberás abrir la tabla para introducir los nuevos datos. El nuevo campo está al lado del campo Fecha de Ingreso. Debes introducir fechas. Inventate las fechas. Puedes introducir fechas posteriores a la de Ingresos en unos cuantos días. Introducción de dos campos nuevos Ahora daremos de alta dos campos nuevos que posteriormente haremos servir para realizar cálculos automáticos. Los campos serán: Días de Ingreso, que controlará automáticamente los días que el paciente ha estado ingresado a través de una sencilla operación matemática entre dos fechas, y el campo Coste Total del Tratamiento, que multiplicará el Coste del Tratamiento por los días que ha estado ingresado, dando como resultado el coste total. I. Inserta dos campos nuevos: Días de Ingreso será del tipo numérico, y Coste total del tratamiento será también del tipo numérico pero con formato Moneda Consulta de actualización de campos Seguidamente crearemos una nueva consulta, pero esta vez no será una consulta para ver por pantalla, sino que será una consulta que cuando se ponga en marcha, cambiará los datos de la tabla. Este tipo de consultas reciben el nombre de Consultas de actualización. Debemos tener cuidado con este tipo de consultas, pues al ejecutarlas ya hemos dicho que modificará los datos de alguna tabla. I. Crea una nueva consulta en modo Vista diseño utilizando la tabla Ingresos. II. Carga el campo Días de Ingreso III. Abre la lista (botón desplegable) Tipo de consulta situado en la barra superior de herramientas, y escoge la lo opción Consulta de actualización. IV. Pulsa un click en la casilla Actualizar a: y escribe la siguiente fórmula: [Fecha de Alta]-[Fecha de Ingreso] Con esto lo que hacemos es una resta de dos fechas. Observa que encerramos los campo entre corchetes. I. Cierra la consulta grabándola y ejecutala. Access nos avisa que se va a ejecutar una consulta de actualización de datos. Acepta. Posteriormente, nos avisa por segunda vez de que se actualizarán varias filas. Vuelve a aceptar. II. Accede a la pestaña de las tablas y verifica abriendo la tabla Ingresos que el campo Días de Ingreso se ha actualizado automáticamente. Actualización del coste total del tratamiento Ahora actualizaremos de forma similar el campo Coste total del tratamiento multiplicando los campos Días de Ingreso y Coste del tratamiento. Podríamos crear una nueva consulta de actualización como hemos hecho anteriormente, pero aprovecharemos la que tenemos creada para añadir la nueva fórmula: I. Edita con el botón Diseño la consulta anterior y añade el siguiente campo con la siguiente fórmula: II. Cierra guardando la consulta y ábrela para verficar su funcionamiento. 30 Consulta de agrupación La clínica quiere saber el número de pacientes que existen por población. Crearemos una consulta que nos muestre las poblaciones y que cuente el número de pacientes de cada una. I. Crea una nueva consulta de la tabla Pacientes y carga los campos Nombre, Apellidos y Población II. Pulsa en el botón Totales situado en la barra superior de herramientas Observa que en la cuadrícula de los campos cargados ha aparecido una nueva fila llamada Total. III. Carga en la cuarta fila otra vez el campo Población y abre la lista desplegable de la fila Total seleccionando la opción Cuenta tal y como aparece en la ilustración: IV. Visualiza como queda. Deberías ver una columna llamada CuentaDePoblación donde se observa el número de habitantes por población de la base de datos. 31 ANEXO II. Repaso de Tablas, Relaciones y Formularios Una de las ventajas de los formularios es que podemos utilizar campos de las tablas creadas de forma más cómoda a través de los controles (botones, listas desplegables, etc) de la caja de herramientas de un formulario en modo diseño. Vamos a crear dos pequeñas tablas. Imaginemos una escuela que gestionará los cursos de los alumnos. Obviamente, y por problemas de espacio y tiempo, hemos omitido gran cantidad de campos que se podrían utilizar. El objetivo de este ejercicio es tan sólo observar las posibilidades de repartir el número de campos de forma que puedan aprovecharse para posteriores acciones que simplificarán la gestión de la base de datos. Hemos creado tres tablas. La primera contiene datos del alumno, la segunda del curso y la tercera servirá para controlar el curso que está realizando dicho alumno. Observa el diseño y características de los campos. La tercera tabla servirá como nexo de unión de las dos anteriores. Repetimos los campos Código alumno y Código curso. Observa el tipo de relación que hemos creado. Un alumno puede hacer varios cursos: A continuación crearemos un formulario que nos permita introducir unos cuantos registros para las dos primeras tablas. Para el primer formulario hemos optado por el asistente eligiendo el tipo Autoformulario: columnas. Igual hemos hecho para el segundo formulario de la tabla Cursos. Para la creación del formulario Nuevo curso sigue los pasos: I. Desde la ficha Formularios elige crear uno nuevo II. Elige el tipo Asistente para formularios y la tabla de la lista Nuevo curso. Acepta III. Carga con el botón de la doble flecha todos los campos a la casilla derecha. IV. Acepta el resto de las pantallas del asistente, avanzando hasta el final del mismo. El formulario que se ha creado, podría servir perfectamente para controlar los nuevos cursos. En la introducción de un nuevo curso, podemos escribir el número de alumno y el número de curso. Al haber una relación Uno a Varios, Access nos obligará a introducir códigos de alumno y códigos de cursos que previamente existan en las otras dos tablas. Al introducir los datos de los campos, se modificará el contenido de la tabla Nuevo curso con el contenido de los campos del formulario. No olvidemos que hemos utilizado exactamente todos los campos de la tabla Nuevo curso. 32 Vamos a ver ahora cómo podemos variar la creación de formularios para obtener el mismo resultado. Crearemos un formulario-subformulario para ver cuanta gente está haciendo un curso. I. Crea un nuevo formulario de la tabla Cursos y del tipo Asistente para formularios II. Carga todos los campos de la tabla Cursos, elige de la lista superior la tabla Alumnos y carga también todos los campos. III. En el paso siguiente, podemos elegir entre ver la información por cursos (qué alumnos están haciendo un curso) o por alumnos (qué cursos está haciendo un alumno). Elegiremos por Cursos y pulsaremos siguiente. IV. Sigue avanzando por el asistente hasta el último paso donde daremos al formulario el nombre Alumnos por curso Observa el resultado. Si has introducido varios cursos y alumnos, verás que el curso que muestra el formulario, se corresponde con los alumnos del sub-formulario. Si no se ven todos los datos, puedes acceder al modo diseño y "estirar" los campos. Utilizar listas desplegables Uno de los controles que nos puede ahorrar trabajo y que además sirve para visualizar varios campos de una tabla en un formulario, son las listas desplegables. Estos controles se crean en modo diseño de un formulario. Se pueden crear con el asistente o sin él. Supongamos que una de las tablas de una base de datos es la siguiente: I. Crea una tabla como la del ejemplo, e introduce 4 ó 5 registros de ejemplo. II. Accede a la pestaña Formularios y crea uno nuevo de esta tabla y del tipo Asistente para formularios III. Carga todos los campos y continúa hasta el final del asistente. IV. Una vez a la vista, accede al modo Diseño del formulario. V. Estira la zona de trabajo de forma que quepan más campos y haya más sitio para actuar. VI. Selecciona los campos Código usuario, Nombre y Apellidos y bórralos (siiiii has oído bieeeeen). VII. Pulsa en el botón Cuadro combinado asegurándote de que la varita mágica del asistente está activada. VIII. Dibuja un pequeño rectángulo (no te preocupes del tamaño, luego se puede ajustar) IX. En el primer paso del asistente, elige la opción Buscar un registro en el formulario... y pulsa en Siguiente. X. La tabla donde buscaremos los datos será Usuarios. Pulsa en Siguiente. XI. Carga los campos Código usuario, Nombre y Apellidos y pulsa en Siguiente. XII. Asegúrate de que la casilla Ocultar la columna clave está activada. XIII. Siguiente y elegir la opción Almacenar este valor en el campo (Código usuario). XIV. Pulsa en Siguiente y colócale como etiqueta: Alumnos. Pulsa finalmente en Terminar. XV. Ahora sólo es cuestión de arreglar la etiqueta y el contenido, alinearlos, etc. XVI. Accede al modo Vista y observa el resultado: cuando seleccionas un alumno, cambian y se visualizan los campos Curso y Nota. Esto ocurre porque el campo elegido al crear la lista desplegable es un campo clave. 33 ANEXO III Access y Visual Basic Conceptos básicos de Visual Basic en Access Como hemos visto en ateriores lecciones, es posible personalizar operaciones en Access de forma que nos agilice el trabajo. Sobre todo, esta circunstancia se da en los formularios a través de listas desplegables, casillas de verificación, etc. No obstante, es posible llegar a personalizar aún más los controles del formulario de forma que respondan a una acción determinada de una forma u otra. Todo esto podemos conseguirlo "programando" algunos controles a nuestro gusto y necesidad. Aunque este pequeño tutorial no pretende dominar el lenguaje Visual Basic, sí que os daremos algunos consejos y trucos para agilizar vuestro trabajo con los formularios. Antes que nada, veamos algunas definiciones básicas: • Programa: secuencia de instrucciones que se ejecutan en un orden lógico y que realizan acciones. • Código de programa: lenguaje basado en instrucciones que nos servirá para comunicarnos con el ordenador y escribir las órdenes que formarán el programa. • Módulo: conjunto de órdenes utilizando el lenguaje de programación Visual Basic. • Procedimiento: parte de un programa que realiza una función determinada. • Evento: acción que podemos realizar sobre algún objeto del programa (botón, casilla, cuadro de texto...) • Objeto: cualquier unidad visual que forme parte de un programa (botón, casilla...) Imaginemos un botón de un formulario que al pulsarlo, se realiza una acción determinada. Nosotros debemos programar el comportamiento del botón escribiendo el código del programa. Ésta parte del programa es un procedimiento. El botón es un objeto. Al pulsar click, se genera un evento (abre un formulario, añade un registro...) Para nuestro ejemplo, utilizaremos una sencilla base de datos formada por dos tablas: clientes y comerciales, con una relación de uno a varios por el campo IdComercial, es decir, que un mismo comercial puede tener asignados varios clientes. Abre la base de datos y observa las tablas, relaciones y formularios que hemos creado. Desde el formulario Comerciales damos de alta nuevos comerciales asignándoles a cada uno un código. En la tabla Clientes hemos cargado también los campos de la tabla Comerciales, de forma que cuando demos de alta un cliente, le asginaremos un código de comercial y automáticamente aparecerán los datos de éste último en los campos situados a la derecha. I. Añade un botón de comando con el asistente, que realice la acción de agregar un nuevo registro. II. Accede a sus propiedades pulsando doble click sobre él. III. Accede a su pestaña superior Eventos IV. Sitúa el cursor en el campo de la propiedad Al hacer clickAy pulsa en el botón Generador (puntos suspensivos) situado a su derecha. Observa el código del programa que aparece. Al crear el botón y asignarle la acción de agregar un nuevo registro, Access ha creado automáticamente el código en Visual Basic que hará que se ejecute la acción mencionada. Este es el código que se ejecuta en lenguaje VB cada vez que pulsamos el botón recién creado. Si no has programado nunca, la primera sensación que tendrás al ver el código es que te sonará a "chino". De momento no te preocupes demasiado. Veamos las partes del procedimiento, y observa sobre todo las partes del mismo, comentadas en una línea de texto a su izquierda: 34 Por si has pensado en pedir hora con el psiquiatra, vamos a explicar un poco lo que hace el código: al pulsar click, se genera el procedimiento agregar_registro_Click(). Este nombre viene del nombre que le dimos al botón en el momento de crearlo. Quizá tú tengas otro nombre. Ten cuidado con este detalle. A continuación comienza la rutina del programa con la orden Private_Sub. La acción que realiza, la observamos en DoCmd.GoToRecord , , acNewRec. La orden DoCmd viene del inglés Do Command, o ejecutar comando, y se utiliza a menudo en Access para realizar acciones. La acción en sí, será GoToRecord, es decir, Access se desplazará a un registro concreto, pero, ¿cual?. La orden acNewRec es la orden para añadir un nuevo registro. Access añade código extra. Es un código auxiliar que permite gestionar posibles errores. Cambio del foco del cursor Si pruebas el botón recién creado, observarás que al añadir un nuevo registro, el foco continúa en el mismo registro. Para comenzar a introducir datos, el usuario debería pulsar un click en el interior del primer campo, o del campo que nos interese. Veamos como modificar el programa para que el cursor se sitúe en el campo deseado: I. Accede al código del programa y añade la siguiente línea: DoCmd.GoToRecord , , acNewRec IdCliente.SetFocus IdCliente_ se refiere al nombre del campo. Seguramente al teclear Set te habrá aparecido un pequeño menú rápido para seleccionar la orden deseada. II. Comprueba el funcionamiento del formulario y añade un nuevo registro. El cursor debería situarse en el campo IdCliente. Protección de un campo Podríamos proteger el contenido de un campo ante cualquier metedura de pata colocando la propiedad Permitir ediciones en No, pero entonces no podríamos introducir ni modificar datos. I. Accede a las propiedades del formulario y cambia la propiedad Permitir ediciones en no. II. Desactiva el asistente para creación de controles (varita mágica) y crea un nuevo botón: III. Accede a las propiedades del nuevo botón y al generador de código. Escribe la siguiente línea de código: Private Sub Comando45_Click() Me.AllowEdits = True IdCliente_.SetFocus End Sub Cuidado con el nombre del botón que acabas de crear. En nuestro ejemplo se llama Comando45 porque no le hemos puesto ningún nombre. La propiedad AllowEdits (permitir ediciones), coloca en Verdadero esa propiedad del formulario, es decir, que temporalmente volvemos a tener el formulario listo para editar sus campos. Con el fin de que el foco vuelva al primer control del formulario, repetimos la línea de la posición del foco en el primer campo. Si ahora intentas cambiar algún dato, Access no lo permitirá. Pero si pinchas en el nuevo botón, Access pasará al modo Permitir ediciones Sí del campo en cuestión. IV. Crea un tercer botón (éste con al asistente activado)... V. Y asígnale el siguiente código: DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 MeAllowEdits = False MsgBox "El registro se ha guardado" 35 Con esto lo que pretendemos es que al pinchar en el botón, la propiedad Permitir edición vuelva a estar en No, y que, además, Access nos avise con un mensaje. La orden MsgBox hace que aparezca un cuadro con un mensaje personalizado. Pruébalo todo (os prometo que funciona). 36 ANEXO IV. Introducción al lenguaje SQL SQL es un lenguaje de Consulta Estructurado que se usa para consultar y actualizar bases de datos relacionales. Vamos a ver el aspecto general de este lenguaje y nos servirá para familiarizarnos con el mismo. Cuando creamos una consulta de datos, Access permite mostrarnos esa consulta de tres formas: • • • Vista: Permite ver el resultado de la consulta Diseño: Es la vista que ya conocemos para construir la consulta. SQL: Vista en formato de instrucciones SQL I. Abre cualquier consulta en modo diseño II. Abre el botón vista y elige Vista SQL. Las palabras en mayúsculas corresponden a instrucciones SQL. III. Cierra la ventana de la consulta y accede en el modo vista SQL a otras consultas que tengas grabadas de forma que puedas ver su estructura. Ya que el aprendizaje de SQL requiere un estudio en profundidad que escapa a los propósitos de este curso, sólo se pretende que conozcas las acciones de las principales instrucciones SQL: • CREATE TABLE: crea una nueva tabla. Debe ir seguida del nombre de tabla y de los campos a crear. Se puede especificar opcionalmente el tipo de campo y un índice de campo. • INSERT INTO insertar registros con sus correspondientes valores en una tabla. • UPDATE: actualiza los valores de los campos de la tabla. • FROM: tras esta instrucción debemos indicar la tabla a partir de la cual se extraerán los datos. Esta instrucción tiene varias cláusulas, las más importantes son: • WHERE: determina qué registros de las tablas de FROM aparecerán en los resultados de la instrucción SELECT • ORDER BY: ordena los datos mostrados en el orden especificado • DELETE FROM: elimina los registros de una tabla. • SELECT.... FROM: realiza consultas sobre tablas. Contraseñas en la base de datos Los datos que tenemos en una base de datos puede llegar a ser muy valiosa. De hecho, cualquier accidente o pérdida de datos, aparte de llegar a suponer una pérdida económica considerable, puede llegar a "cabrearnos" bastante después de tantas horas de trabajo. La pérdida de la información puede prevenirse de varias formas: • • • Realiza copias de seguridad de los archivos MDB con frecuencia. Haz copias de las tablas. A veces, una consulta de actualización puede desembocar en resultados catastróficos. Crea réplicas si es necesario. 37 • Protege con contraseñas la base de datos. Nunca te fíes de un ordenador. Es una máquina, y como tal, falla. El día menos pensado te quedas sin un fichero, se introduce un virus, borras accidentalmente información o cualquier otra situación similar y es cuando nos acordamos de porqué no hemos hecho una copia en disquete de nuestros archivos. Access dispone de dos sistemas para asegurar la información de una base de datos: • Contraseña: el acceso a la base de datos por completo está restringido por contraseña. Hay que tener en cuenta que, aunque la contraseña está encriptada para que no pueda leerse mientras se escribe, una vez abierta podemos acceder a todos los objetos, incluso anular o cambiar la contraseña. • Seguridad a nivel de usuario: se limita el acceso para cada usuario. Éste tendrá acceso sólo a determinadas partes de la base de datos. I. Cierra cualquier base de datos que tengas abierta. II. Accede a Archivo - Abrir para abrir una base de datos. III. Selecciona cualquier base de datos que tengas y activa el botón Exclusivo IV. Ábrela Hemos utilizado la opción Exclusivo porque si estamos trabajando en red, ningún otro usuario podrá acceder a la base de datos. V. Accede a Herramientas - Seguridad - Establecer contraseña para la base de datos. VI. Escribe en las dos casillas la misma contraseña. Una cualquiera y acepta. Si no hubiésemos abierto la base de datos en modo Exclusivo, Access nos hubiese mostrado un mensaje indicando que debemos abrirla en este modo, y nos impediría asignar una contraseña. VII. Cierra la base de datos. VIII. Vuelve a abrirla. (Access pregunta por la contraseña:) Si no la introducimos correctamente, no podremos acceder a la base de datos. IX. Prueba a introducir cualquier carácter que no coincida con la contraseña asignada. X. Prueba a introducir la contraseña correcta. Para eliminar la contraseña bastará con acceder a la opción Herramientas - Seguridad - Anular contraseña establecida para la base de datos1 Acceso por usuarios a la base datos Cuando se trabaja en red, cualquier usuario que conozca una contraseña podrá igualmente acceder a todas las opciones de la base de datos así como modificar o borrar datos. En red, lo más apropiado es restringir el acceso de forma específica indicando qué usuarios pueden acceder a determinadas partes del programa. I. Accede a Herramientas - Seguridad - Cuentas de usuario y de grupo Si has trabajado en red, sobre todo con Windows NT, el cuadro de diálogo te resultará familiar. Aunque en esta parte no podemos realizar prácticas, echaremos no obstante un vistazo a las principales opciones: • Un permiso especifica el tipo de acceso que tiene un usuario. • Un grupo de trabajo es un grupo de usuarios que comparten datos en un entorno multiusuario en red. • Administradores son aquellos que tienen permisos completos a todas las bases de datos. Estos, se crean desde Windows NT y el servidor central y se les asigna la tares de administradores. 38 • Usuarios son el conjunto de usuarios de un grupo de trabajo, a los cuales se les otorga una serie de permisos para el acceso a según qué partes del programa. II. Cancela el cuadro y accede a Herramientas - Seguridad - Permisos de usuario y grupo En Lista podemos elegir entre Grupos o Usuarios para establecer los permisos. En la parte inferior, en el cuadro Permisos, podemos activar o desactivar las casillas para establecer los permisos para leer, modificar, etc. Por ejemplo, para permitir leer la información de dos de las tablas, pero no actualizarla, borrarla, ni modificar su diseño, seleccionaremos primero las tablas en la lista Nombre del objeto y después activaremos sólo la opción Leer datos. III. Cancela el cuadro. Podemos proteger también la base de datos con la opción Heramientas - Seguridad - Codificar o descodificar base de datos. Esta opción hará una copia de la base de datos en información indescifrable. Crear archivos MDE También podemos proteger la base de datos contra cambios en el diseño del formulario, informes y módulos haciendo una copia de la base de datos en formato MDE. Para ello: I. Accede a Herramientas - Utilidades de la base de datos - Crear archivo MDE. II. Elige una carpeta y acepta el nombre que propone Access. III. Cierra la base de datos. IV. Pulsa en Abrir. V. Abre la lista desplegable Tipo de archivo y elige Archivos MDE VI. Abre la base de datos que hemos creado en formato MDE. VI. Intenta acceder al modo Diseño de cualquier formulario. Access e Internet Mediante Access podemos insertar en nuestras bases de datos hipervínculos que funcionen en Internet. De esta forma, el usuario no solo comparte datos con otros usuarios de la red local, sino con un público mucho mayor (todo el mundo) a través de la World Wide Web. Para compartir bases de datos con otros usuarios, Access incorpora dos herramientas: • • El asistente para páginas Web, utilizado para crear documentos Web. Posibilidad de guardar documentos de bases de datos en formato HTML, transformando el documento en una página Web que pueda ser visualizada y consultada en Internet desde cualquier parte del mundo. Incluir Hipervínculos Un hipervínculo es un elemento (texto, imagen) que tiene la facultad de responder ante un click del usuario y acceder a otra zona del mismo documento, un documento distinto o bien una dirección Web. I. Abre una tabla cualquiera. II. Añade el campo: Dirección Web del tipo Hipervínculo III. Cierra el diseño de la tabla guardando los cambios. IV. Accede a Abrir V. Sitúa el cursor en el nuevo campo y pulsa el botón Insertar hipervínculo situado en la barra de herramientas. VI. Introduce una dirección Web de muestra: VII. Acepta. 39 Observa el contenido del campo. Se trata de un enlace a una dirección Web. Si en estos momentos estuviésemos conectados a Internet, se ejecutaría el navegador por defecto y entraríamos en la página Web indicada. Disponemos también de una barra de navegación al estilo de Internet Explorer. Importar y exportar en HTML El formato HTML es con el que se crean las páginas Web que vemos en Internet. Está formado por comandos que son reconocidos por navegadores como Internet Explorer o Netscape Navigator. Access permite crear un documento y prepararlo para su publicación en Internet. I. Accede a Archivo - Guardar como o exportar En el cuadro de diálogo debemos seleccionar los objetos que queramos exportar. Tras aceptar, aparecerá un cuadro de diálogo desde donde seleccionaremos el formato HTML. Para exportar un objeto (tabla, consulta, etc) en formato HMTL, debemos seleccionar la carpeta donde queramos guardar el archivo. Si lo que queremos es indicarle una dirección FTP para envío de ficheros, debemos desplegar la lista Guardar en y seleccionar Agregar o modificar ubicac. Aparecerá un cuadro de diálogo. El FTP permite transferir archivos de una ubicación a otra dentro de Internet. Normalmente se utiliza para envíos de ficheros de nuestra página a nuestro servidor. Para importar datos en formato HTNL debemos acceder a Archivo - Obtener datos externos - Importar y elegir en Tipo de archivo los Documentos HTML. 40