Microsoft Access 2003 www.professionalscat.net [email protected] @profesionalscat www.professionalscat.net [email protected] @profesionalscat ÍNDICE 1. Las bases de datos ________________________________________________________ 5 ¿Qué es una base de datos? _______________________________________________________ 5 Tipos de Bases de datos __________________________________________________________ 5 Bases de datos jerárquicas ______________________________________________________________ 5 Base de datos de red___________________________________________________________________ 5 Base de datos relacional ________________________________________________________________ 5 Bases de datos multidimensionales _______________________________________________________ 6 Bases de datos orientadas a objetos _______________________________________________________ 6 Base de datos deductivas _______________________________________________________________ 7 ¿Qué es Microsoft Access? _______________________________________________________ 7 Objetos de una base de datos _____________________________________________________ 8 Tablas______________________________________________________________________________ 8 Consultas ___________________________________________________________________________ 8 Formularios _________________________________________________________________________ 9 Informes ____________________________________________________________________________ 9 Páginas _____________________________________________________________________________ 9 Macros _____________________________________________________________________________ 9 Módulos ____________________________________________________________________________ 9 2. Primeros pasos con Access ________________________________________________ 10 Abrir la aplicación _____________________________________________________________ 10 3. Creación de una base de datos _____________________________________________ 11 4. Las tablas ______________________________________________________________ 13 Crear tablas __________________________________________________________________ 13 Definición de los campos ________________________________________________________ 16 Tipos de datos ______________________________________________________________________ 16 Introducir, eliminar y modificar registros en las tablas _______________________________ 17 Introducir registros ___________________________________________________________________ 18 Eliminar registros ____________________________________________________________________ 19 Modificación del diseño de una tabla ______________________________________________ 20 Manipulación de columnas desde la vista hoja de datos ______________________________ 20 Cambiar el ancho de las columnas _______________________________________________________ 21 Ocultar y mostrar columnas ____________________________________________________________ 21 Mover una columna __________________________________________________________________ 22 Inmovilizar columnas_________________________________________________________________ 22 5. Claves principales y relaciones _____________________________________________ 23 Definición de una clave principal _________________________________________________ 23 Relaciones ____________________________________________________________________ 23 Tipos de relaciones _____________________________________________________________ 26 Uno a uno __________________________________________________________________________ 26 Uno a varios ________________________________________________________________________ 26 Varios a varios ______________________________________________________________________ 26 6. Consultas de selección ____________________________________________________ 28 -2- www.professionalscat.net [email protected] @profesionalscat Creación de consultas __________________________________________________________ 28 Introducir criterios de selección __________________________________________________ 30 Operadores de comparación de una consulta _______________________________________ 32 Operadores Y (AND) y O (OR) __________________________________________________ 32 Las cláusulas ENTRE, EN y COMO ______________________________________________ 33 Entre______________________________________________________________________________ 33 En ________________________________________________________________________________ 33 Como _____________________________________________________________________________ 33 Consultas de selección calculadas _________________________________________________ 34 Generador de expresiones _______________________________________________________ 35 Ordenación de los datos ________________________________________________________ 36 Consultas de totales ____________________________________________________________ 37 Consultas de parámetros ________________________________________________________ 39 7. Consultas de acción ______________________________________________________ 41 Consulta de creación de tablas ___________________________________________________ 42 Consulta de actualización _______________________________________________________ 43 Consulta de datos anexados _____________________________________________________ 44 Consulta de eliminación ________________________________________________________ 45 8. Diseño de consultas avanzadas – SQL _______________________________________ 46 Una breve historia de SQL ______________________________________________________ 46 La sintaxis SELECT de SQL en Microsoft Access ___________________________________ 46 Nombre de la columna ________________________________________________________________ 47 Cláusula FROM _____________________________________________________________________ 47 Consultas de Acción SQL _______________________________________________________ 48 Sentencia DELETE __________________________________________________________________ 48 Sentencia INSERT ___________________________________________________________________ 49 Sentencia SELECT…INTO ____________________________________________________________ 49 Sentencia UPDATE __________________________________________________________________ 50 9. Los formularios _________________________________________________________ 51 Encabezados, secciones de detalle y pies ___________________________________________ 51 Los Autoformularios ___________________________________________________________ 51 Desplazamiento a través de un formulario y tratamiento de los datos ___________________ 52 Diseño de formularios __________________________________________________________ 54 El cuadro de herramientas ______________________________________________________ 55 La lista de campos _____________________________________________________________ 58 La hoja de propiedades _________________________________________________________ 58 Desplazamiento y cambio de tamaño de los controles ________________________________ 59 Simplificación de la introducción de datos con un formulario _________________________ 60 Cuadros combinados _________________________________________________________________ 60 Cuadros de lista _____________________________________________________________________ 64 -3- www.professionalscat.net [email protected] @profesionalscat Propiedad column de los cuadros de lista o cuadros combinados _______________________ 65 Crear una plantilla con Access ___________________________________________________ 66 Crear un autoformato en Access _________________________________________________ 66 10. Informes ______________________________________________________________ 69 Origen de los datos en un informe ________________________________________________ 69 Creación de informes utilizando el asistente ________________________________________ 70 Encabezados, secciones de detalle, pies y grupos ____________________________________ 75 Configuración de la impresión ___________________________________________________ 77 11. Macros _______________________________________________________________ 78 Creación de una macro _________________________________________________________ 78 Guardar una macro ____________________________________________________________ 79 Asignación de una macro _______________________________________________________ 80 Conversión de las macros a Visual Basic ___________________________________________ 81 12. Módulos ______________________________________________________________ 82 Objetos de módulo _____________________________________________________________ 82 Módulos de formulario e informe _________________________________________________ 82 La ventana del editor de Visual Basic _____________________________________________ 82 Variables y constantes __________________________________________________________ 83 Ámbito de una constante y de una variable ________________________________________________ 84 BiBLIOgrafÍa: ____________________________________________________________ 86 - Ayuda de Microsoft Access 2003 ______________________________________________________ 86 - Running Microsoft Access 2000 – Guía Completa. Autor: John Viescas. Editorial: McGraw Hill ____ 86 - Paso a Paso – Access 2003 – Editorial: McGraw Hill _______________________________________ 86 -4- www.professionalscat.net [email protected] @profesionalscat 1. LAS BASES DE DATOS ¿Qué es una base de datos? Una base de datos es el equivalente en informática a una lista de información organizada. Normalmente, esta información posee un aspecto o finalidad común. Un ejemplo muy claro podría ser la guía telefónica de nuestra ciudad, que probablemente se encuentre en una estantería cerca de nosotros. Si queremos encontrar el teléfono de alguna persona podremos hacerlo fácilmente ya que la información se encuentra organizada de forma comprensible. Tipos de Bases de datos Bases de datos jerárquicas Éstas son bases de datos que, como su nombre indica, almacenan su información en una estructura jerárquica. En este modelo los datos se organizan en una forma similar a un árbol (visto al revés), en donde un nodo padre de información puede tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen hijos se los conoce como hojas. Las bases de datos jerárquicas son especialmente útiles en el caso de aplicaciones que manejan un gran volumen de información y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento. Una de las principales limitaciones de este modelo es su incapacidad de representar eficientemente la redundancia de datos. Base de datos de red Éste es un modelo ligeramente distinto del jerárquico; su diferencia fundamental es la modificación del concepto de nodo: se permite que un mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerárquico). Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución eficiente al problema de redundancia de datos; pero, aun así, la dificultad que significa administrar la información en una base de datos de red ha significado que sea un modelo utilizado en su mayoría por programadores más que por usuarios finales. Base de datos relacional Éste es el modelo más utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. Tras ser postulados sus fundamentos en 1970 por Edgar Frank Codd, de -5- www.professionalscat.net [email protected] @profesionalscat los laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de "relaciones". Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados "tuplas". Pese a que ésta es la teoría de las bases de datos relacionales creadas por Edgar Frank Codd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar. Esto es pensando en cada relación como si fuese una tabla que está compuesta por registros (las filas de una tabla), que representarían las tuplas, y campos (las columnas de una tabla). En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar para un usuario esporádico de la base de datos. La información puede ser recuperada o almacenada mediante "consultas" que ofrecen una amplia flexibilidad y poder para administrar la información. El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query Language o Lenguaje Estructurado de Consultas, un estándar implementado por los principales motores o sistemas de gestión de bases de datos relacionales. Durante su diseño, una base de datos relacional pasa por un proceso al que se le conoce como normalización de una base de datos. Durante los años '80 (1980-1989) la aparición de dBASE produjo una revolución en los lenguajes de programación y sistemas de administración de datos. Aunque nunca debe olvidarse que dBase no utilizaba SQL como lenguaje base para su gestión. Bases de datos multidimensionales Son bases de datos ideadas para desarrollar aplicaciones muy concretas, como creación de Cubos OLAP. Básicamente no se diferencian demasiado de las bases de datos relacionales (una tabla en una base de datos multidimensional podría serlo también en una base de datos multidimensional), la diferencia está más bien a nivel conceptual; en las bases de datos multidimensionales los campos o atributos de una tabla pueden ser de dos tipos, o bien representan dimensiones de la tabla, o bien representan métricas que se desean estudiar. Bases de datos orientadas a objetos Este modelo, bastante reciente, y propio de los modelos informáticos orientados a objetos, trata de almacenar en la base de datos los objetos completos (estado y comportamiento). Una base de datos orientada a objetos es una base de datos que incorpora todos los conceptos importantes del paradigma de objetos: -6- www.professionalscat.net [email protected] @profesionalscat Encapsulación - Propiedad que permite ocultar la información al resto de los objetos, impidiendo así accesos incorrectos o conflictos. Herencia - Propiedad a través de la cual los objetos heredan comportamiento dentro de una jerarquía de clases. Polimorfismo - Propiedad de una operación mediante la cual puede ser aplicada a distintos tipos de objetos. En bases de datos orientadas a objetos, los usuarios pueden definir operaciones sobre los datos como parte de la definición de la base de datos. Una operación (llamada función) se especifica en dos partes. La interfaz (o signatura) de una operación incluye el nombre de la operación y los tipos de datos de sus argumentos (o parámetros). La implementación (o método) de la operación se especifica separadamente y puede modificarse sin afectar la interfaz. Los programas de aplicación de los usuarios pueden operar sobre los datos invocando a dichas operaciones a través de sus nombres y argumentos, sea cual sea la forma en la que se han implementado. Esto podría denominarse independencia entre programas y operaciones. Se está trabajando en SQL3, que es el estándar de SQL92 ampliado, que soportará los nuevos conceptos orientados a objetos y mantendría compatibilidad con SQL92. Bases de datos documentales Permiten la indexación a texto completo, y en líneas generales realizar búsquedas más potentes. Tesaurus es un sistema de índices optimizado para este tipo de bases de datos. Base de datos deductivas Un sistema de base de datos deductivas, es un sistema de base de datos pero con la diferencia de que permite hacer deducciones a través de inferencias. Se basa principalmente en reglas y hechos que son almacenados en la base de datos. También las bases de datos deductivas son llamadas base de datos lógica, a raíz de que se basan en lógica matemática. ¿Qué es Microsoft Access? Microsoft Access, es un sistema de gestión de bases de datos relacionales (SGBDR), dicho de otra forma, es un aplicación para la creación y la gestión de bases de datos del tipo relacional, explicadas con anterioridad. Esta aplicación viene integrada en el sistema Microsoft Office -7- www.professionalscat.net [email protected] @profesionalscat Objetos de una base de datos Una base de datos contiene diferentes objetos, en la figura siguiente, que muestra la ventana principal de la base de datos de Access, podemos ver todos los que pueden intervenir en nuestra aplicación. Para cada objeto de Access tendremos dos o más vistas. Normalmente vista diseño y Vista hoja de datos para las tablas y consultas. Vista diseño y vista formulario o vista diseño y vista informe. Desde la vista diseño podremos editar la estructura del objeto y desde la otra podremos ver y editar los datos de las tablas. Tablas De todos estos, solo uno de ellos se utiliza para almacenar la información: las tablas. Podríamos decir que es el elemento más importante pues sin el no podríamos tener una base de datos. Los objetos de la base de datos, se utilizan para gestionar, tratar, analizar, recuperar, visualizar o publicar la información de las tablas. Consultas Es una de las formas por las que podremos localizar la información en una base de datos. Una consulta puede considerarse una pregunta que nosotros le hacemos a Access para que nos muestre una serie de datos de una tabla. -8- www.professionalscat.net [email protected] @profesionalscat Formularios Es un ventana en la que se pueden colocar controles para ofrecer a los usuarios información o permitir la introducción de la información. Access ofrece un cuadro de herramientas que incluye muchos de los controles estándar de Windows, como etiquetes, cuadros de texto, botones de opción o casillas de verificación entre otros. Los formularios nos permitirán introducir, modificar y eliminar registros de las tablas de forma cómoda. Informes Los informes nos permitirán visualizar la información de una tabla en un formato atractivo y preparado para imprimir. Un informe puede incluir elementos de información seleccionados procedentes de varias tablas y consultas. Valores calculados a partir de la información de la base de datos y elementos de formato como encabezados, pies y títulos. Páginas También llamadas páginas de acceso a datos, las podremos utilizar para permitir que los usuarios visualicen y gestionen la información de una base de datos a través de una intranet o de Internet. Trabajar con una página de acceso a datos en la Web es muy parecido a trabajar con una tabla o formulario directamente en Access. Macros Una macro se puede definir como un comando que responde a un evento generado por Access. Es decir, en el momento que se pulse un botón, podemos hacer que Access ejecute una macro que abra o cierre un formulario, por ejemplo. Trabajar con macros, puede permitir que ciertos usuarios no experimentados, manipulen nuestra base de datos de forma cómoda y sencilla. También garantizará que las tareas se lleven a cabo siempre del mismo modo. Módulos Son más potentes que las macros. Son programas realizados con Visual Basic para Aplicaciones (VBA). VBA es un lenguaje de programación de alto nivel desarrollado por Microsoft cuya finalidad es la de crear aplicaciones Windows. Todos los programas de Microsoft Office utilizan un conjunto común de instrucciones VBA, además de su propio conjunto. Utilizaremos visual Basic para llevar a cabo tareas que son demasiado complejas como para ser tratadas con macros. -9- www.professionalscat.net [email protected] @profesionalscat 2. PRIMEROS PASOS CON ACCESS Abrir la aplicación Para poder crear o manipular una base de datos, tendremos que empezar por abrir la aplicación. Normalmente Access, se encuentra en el menú Inicio – Todos los programas – Microsoft Office – Microsoft Access 2003. Al hacerlo, aparecerá la ventana de la aplicación. Como Microsoft Access forma parte del sistema de Microsoft Office, los objetos básicos el interfaz, menús, barras de herramientas, cuadros de diálogo, etc., funcionan básicamente de la misma forma que en los demás productos de Office o de otras aplicaciones de Microsoft Windows. - 10 - www.professionalscat.net [email protected] @profesionalscat 3. CREACIÓN DE UNA BASE DE DATOS La creación de la estructura de una base de datos es muy sencilla. Pero una base de datos en blanco no es más útil que un documento en blanco de Microsoft Word. Cuando se crea o desarrolla una base de datos con los datos de las tablas es cuando verdaderamente comienza a cumplir su propósito. Para crear una base de datos, podremos realizarlo de diferentes formas. Utilizando el botón Nuevo o bien desde el menú Archivo – Nuevo. Cualquiera de las dos opciones, nos mostrará el panel Nuevo archivo. Desde el que podremos crear nuestra base de datos utilizando diferentes modelos. Desde la opción base de datos en blanco… crearemos una base de datos vacía, donde después podremos ir creando los diferentes elementos que necesitemos, tablas, consultas, formularios, etc. También podremos utilizar la opción En mi PC…, del apartado Plantillas para poder crear nuestra base de datos, bien sea con una plantilla determinada o con alguno de los asistentes que nos ofrece Access. Un asistente de creación de bases de datos nos permitirá ir siguiendo una serie de pasos para poder escoger la estructura de nuestras tablas y el diseño que tendrá nuestra base de datos de forma muy cómoda y sin emplear demasiado tiempo. Al hacer clic en la opción En mi PC…, aparecerá el cuadro de diálogo de las plantillas de Access. - 11 - www.professionalscat.net [email protected] @profesionalscat Desde la pestaña Bases de datos, podremos encontrar las plantillas comentadas con anterioridad. Cuando hacemos clic sobre el icono de la creación de base de datos, aparecerá el cuadro de diálogo para que elijamos el lugar y el nombre con el que queremos guardar nuestro archivo de base de datos. - 12 - www.professionalscat.net [email protected] @profesionalscat 4. LAS TABLAS Crear tablas Al igual que muchos de los objetos de las bases de datos, las tablas podremos crearlas manualmente, desde la vista diseño o bien utilizando algunos de los asistentes que proporciona Microsoft Access. Para crear una tabla utilizando un asistente, primero nos ubicaremos en la zona de las tablas de la ventana principal de la base de datos y a continuación pulsaremos el botón Nuevo, para luego escoger la opción Asistente para tablas, del cuadro emergente Figura 4.1. Cuadro de diálogo Nueva tabla o bien haremos doble clic en la opción Crear una tabla utilizando el asistente de la propia ventana. Figura 4.2. Crear una tabla utilizando el asistente De cualquier forma, aparecerá el asistente para la creación de nuestra tabla - 13 - www.professionalscat.net [email protected] @profesionalscat Figura 4.3. Asistente para tablas Desde este, el primer paso será escoger aquellos campos que necesitaremos para nuestra tabla desde las diferentes opciones que tenemos, iremos siguiendo todos los pasos hasta conseguir todo lo que necesitemos. Los botones centrales del cuadro nos ayudarán a seleccionar aquellos campos que necesitemos. Estos botones, los podremos encontrar en muchos de los asistentes de Access. Figura 4.4. Botones opción asistente De todas formas la mejor forma de crear una tabla será hacerlo de forma manual a través de la vista diseño, empezando desde cero, ya que será cuando realmente la adaptaremos a nuestras necesidades al cien por cien. Para hacerlo, nos dirigiremos al botón Nuevo y escogeremos Vista diseño en el cuadro emergente. - 14 - www.professionalscat.net [email protected] @profesionalscat Figura 4.5. Ventana Vista diseño tabla En la parte superior de esta ventana, definiremos los campos y sus tipos de datos y en la parte inferior, las propiedades de cada unos de los campos que coloquemos. Dependiendo del tipo de datos escogido, las propiedades podrán cambiar. Una vez creada nuestra tabla, podremos guardarla desde el botón guardar de la barra de herramientas o bien desde la opción Guardar, del menú Archivo. Nos pedirá un nombre y haremos Aceptar. - 15 - www.professionalscat.net [email protected] @profesionalscat Figura 4.6. Cuadro Guardar como de las tablas Definición de los campos Desde la vista diseño de una tabla, podemos definir los campos. Escribiremos en la columna Nombre del campo el nombre que deseemos asignarle y a continuación en la columna Tipo de datos, escogeremos el tipo que necesitemos dependiendo de los datos que posteriormente tengamos pensado de introducir. Figura 4.7. Tipos de datos Tipos de datos Los diferentes tipos de datos que podremos colocar son: Texto: Datos alfanuméricos hasta 255 caracteres Memo: Texto extenso, o combinación extensa de texto y números. Hasta un máximo de 65.535 caracteres. Número: Datos numéricos utilizados en cálculos matemáticos. Podremos utilizar diversos tamaños, 1, 2, 4 u 8 bytes, dependiendo del tamaño escogido. Fecha/Hora: Cualquier dato que se pueda identificar como una fecha o una hora. Moneda: Valores de moneda y datos numéricos utilizados en cálculos matemáticos en los que estén implicados datos que contengan entre uno y cuatro decimales. La precisión es de hasta 15 dígitos a la izquierda del separador decimal y hasta 4 dígitos a la derecha del mismo. Autonumérico: Número secuencial (incrementado de uno a uno) único, o número aleatorio que Microsoft Access asigna cada vez que se agrega un nuevo registro a una tabla. Los campos Autonumérico no se pueden actualizar. - 16 - www.professionalscat.net [email protected] @profesionalscat Sí/No: Valores Sí y No, y campos que contengan uno de entre dos valores (Sí/No, Verdadero/Falso o Activado/desactivado). Objeto OLE: Objeto (como por ejemplo una hoja de cálculo de Microsoft Excel, un documento de Microsoft Word, gráficos, sonidos u otros datos binarios, procedentes de otras aplicaciones Windows) vinculado o incrustado en una tabla de Microsoft Access. Hipervínculo: Texto o combinación de texto y números almacenada como texto y utilizada como dirección de hipervínculo, para dar acceso a una página Web o archivo en la WWW o en la intranet, en una red o bien en el propio ordenador. Introducir, eliminar y modificar registros en las tablas Una vez diseñada nuestra tabla, llega la hora de la introducción de registros en la misma o bien su manipulación. Para hacerlo, tendremos que acceder a la tabla en la vista hoja de datos. Esto podremos llevarlo a cabo, haciendo doble clic sobre la tabla guardada en la ventana principal de la base de datos Figura 4.8. Ventana principal Base de datos O si nos encontramos en la vista diseño, pulsar el botón Vista Hoja de datos de la barra de herramientas. Figura 4.9. Botón vista hoja de datos Aparecerá la ventana de introducción de registros - 17 - www.professionalscat.net [email protected] @profesionalscat Figura 4.10. Ventana de la tabla en Vista hoja de datos Introducir registros En esta podremos ir introduciendo los registros uno debajo del otro. El campo Autonumérico se generará automáticamente cuando empecemos a escribir en cualquiera de los otros campos de la tabla. Al hacerlo, además aparecerá el símbolo de un lápiz al lado del selector de registro, esto nos indicará que el registro todavía no ha sido guardado. Figura 4.11. Registro no guardado El asterisco nos indica que es la zona preparada para introducir un registro nuevo. Debajo de todas las ventanas de Access que sirven para enseñar los datos y manipularlos, aparecen lo que se llaman botones de desplazamiento. Estos nos servirán para movernos por todos los registros de la tabla. - 18 - www.professionalscat.net [email protected] @profesionalscat Figura 4.12. Botones de desplazamiento Eliminar registros Si queremos borrar uno de los registros de la tabla, nos colocaremos sobre cualquier zona del registro que deseamos eliminar y podremos utilizar las siguientes opciones: Desde la barra de herramientas, pulsaremos el botón eliminar registro Figura 4.13. Eliminar registro Podríamos hacerlo a través de la opción eliminar registro del menú Edición También con el botón derecho clicando en la el selector de registro y escoger la opción eliminar registro Figura 4.14. Selector de registro O Haciendo un clic en el selector de registro y pulsando la tecla Supr. Con cualquiera de estas opciones aparecerá siempre un cuadro de diálogo que nos solicitará la confirmación para la eliminación de dicho registro, advirtiéndonos que esta eliminación será permanente y no podremos deshacer. - 19 - www.professionalscat.net [email protected] @profesionalscat Figura 4.15. Confirmación de eliminación Modificación del diseño de una tabla Para modificar el diseño de una tabla podremos abrir nuestra tabla a través del botón diseño de la ventana principal de la base de datos, previo selección de la tabla que deseemos modificar. Figura 4.16. Diseño de tabla O bien utilizando el botón vista diseño si tenemos abierta la tabla en modo vista hoja de datos. Figura 4.17. Botón Vista diseño Manipulación de columnas desde la vista hoja de datos Cuando trabajamos con los datos de nuestra tabla, podremos modificar el tamaño de las columnas para ver más cantidad de datos, ocultarlas porque no las necesitamos visualizar todas, cambiarlas de lugar o simplemente fijarlas porque necesitamos que siempre se encuentre en la parte izquierda para servirnos como referencia al ojear la tabla. - 20 - www.professionalscat.net [email protected] @profesionalscat Cambiar el ancho de las columnas En ancho predeterminado de las columnas, a veces es demasiado grande para el contenido de las mismas o demasiado pequeño para mostrar todo el contenido, por ese motivo podremos cambiar el tamaño para ajustarlo a nuestras necesidades. Para hacerlo, la forma más cómoda será utilizar la posibilidad que nos proporciona el Access desde la propia columna: Figura 4.18. Ancho de columna Clicar y arrastrar para conseguir el ancho necesario o bien hacer doble clic para ajustar automáticamente a la anchura exacta. También podremos cambiar el ancho desde el menú Formato – Ancho de columna, donde aparecerá el siguiente cuadro, desde el que podremos modificar la anchura numéricamente. Figura 4.19. Cuadro ancho de columna Ocultar y mostrar columnas Podremos ocultar una o varias columnas porque necesitamos solo visualizar unas cuantas para nuestro trabajo, para hacerlo podremos igualmente ir al menú Formato – Ocultar columnas o bien con el botón derecho encima del nombre de la columna y escogiendo la opción con el mismo nombre. Para mostrarlas podremos ir al Formato – Mostrar columnas y marcaremos aquellas que necesitamos que vuelvan a aparecer. - 21 - www.professionalscat.net [email protected] @profesionalscat Mover una columna Para mover una columna de ubicación simplemente tendremos que arrastrarla, habiéndola seleccionado con anterioridad. Lo podremos realizar con una o con varias columnas a la vez, siempre y cuando estén seleccionadas. Inmovilizar columnas La inmovilización de columnas es necesaria cuando tenemos tantos campos que al desplazarnos hacia la derecha perdemos la noción del registro donde nos encontramos ubicados. Cuando inmovilizamos una o varias columnas, estas se mueven al primer lugar de la hoja de datos, cuando quitamos esta movilización, lamentablemente no vuelven a su lugar originario. Para inmovilizar/liberar columnas a través del menú formato – inmovilizar columnas o bien con el botó derecho encima de la columna a inmovilizar. Para volver a liberarlas (todas a la vez, no podremos liberar una sola columna), también lo haremos desde el menú Formato – Liberar todas las columnas o bien con el botón derecho encima de cualquier columna. - 22 - www.professionalscat.net [email protected] @profesionalscat 5. CLAVES PRINCIPALES Y RELACIONES Estos dos conceptos se explican conjuntamente dado que tienen una relación entre ellos, una clave principal no serviría de mucho sin que estuviera relacionada con otro campo de otra tabla; y una relación, a veces no ofrecería sus mayores prestaciones si al menos uno de los campos relacionados no fuera una clave principal. Definición de una clave principal Cualquier tabla de una base de datos relacional tendría que tener una clave principal (aunque no es obligatorio, si es muy recomendable). Un buen diseño de base de datos relacional incluye que cada uno de los registros de cualquier tabla debe ser identificado de forma única. Es decir, algún campo (o combinación de campos) de la tabla debe albergar un valor único para cada registro de la tabla. Este identificador único es lo que se llama Clave Principal. Siempre que sea posible se debería utilizar los datos más sencillos que proporcionen valores únicos para crear una Clave principal, como por ejemplo en una base de datos de clientes, el campo que se encargue de guardar el NIF/CIF o DNI del cliente sería una clave principal bastante lógica ya que sería un campo que irremediablemente no tendría porqué repetirse en nuestra tabla, ya que el cliente únicamente lo tendremos introducido una sola vez. Para indicar a Access que campo tiene que ser nuestra Clave principal, primero tendremos que abrir en vista diseño la tabla en cuestión y seleccionar el campo o campos que necesitamos que sea la Clave Principal. A continuación solo tendremos que pulsar el botón de la clave principal que se encuentra en la barra de herramientas. Figura 5.1. Clave principal Relaciones Después de haber confeccionado las tablas y claves principales de cada una de ellas, deberíamos indicarle a Access cuál es la relación existente entre ellas. De esta forma, Access - 23 - www.professionalscat.net [email protected] @profesionalscat sabrá cómo enlazar todas sus tablas cuando las utilicemos más tarde en consultas, formularios, páginas de acceso a datos o informes. Para definir las relaciones, necesitamos regresar a la Ventana de base de datos cerrando cualquier ventana Tabla que esté abierta y haciendo clic en la Ventana Base de datos para activarla. A continuación, debemos elegir la orden Relaciones que se encuentra en la barra de herramientas. Figura 5.2. Botón relaciones Si es la primera vez que accedemos a las relaciones, cuando se abra la ventana aparecerá el cuadro de diálogo mostrar tabla para que podamos escoger las tablas o consultas que queremos relacionar, a través del botón Agregar. Figura 5.3. Cuadro de diálogo Mostrar tabla Una vez seleccionadas las tablas y agregadas, al cerrar el cuadro veremos algo así: - 24 - www.professionalscat.net [email protected] @profesionalscat Figura 5.4. Tabla de relaciones Para relacionar dos campos, simplemente arrastraremos uno de ellos hacia el que queremos crear la relación, cuando soltemos el ratón se nos mostrará el cuadro de modificar relaciones Figura 5.5. Modificar relaciones En este nos indicará el tipo de relación que se está creando ya que nosotros de manera directa no podemos escoger el tipo de relación que necesitamos, sino que lo creará Access automáticamente cuando creemos las relaciones y dependiendo de los campos que sean claves principales creará uno de los tres tipos de relaciones que existen - 25 - www.professionalscat.net [email protected] @profesionalscat Tipos de relaciones Uno a uno Cuando los dos campos que se relacionan son claves principales. Ocasionalmente podría ser que tuviéramos que dividir una tabla, debido a que parte de la información, se utiliza con poca frecuencia o porque algunos datos son muy delicados y no deben estar disponibles para ciertas personas. En estos casos se creará una clave principal en cada una de las tablas que serán las que estarán relacionadas entre ellas. Uno a varios Es el tipo de relación más común. Es cuando para una registro de una tabla, existen varios registros coincidentes para la segunda tabla. Este tipo de relación será cuando relacionemos un campo que sea clave principal, con uno que no lo sea. Por ejemplo, un cliente puede tener varios pedidos, pero un pedido solo lo puede realizar un solo cliente. Varios a varios Cuando varios registros de una tabla, tengan de alguna forma que estar relacionados con varios registros de la otra tabla. Pero en estos casos, Access, no nos permitirá crear una relación de varios a varios directamente entre las dos tablas, sino que tendremos que crear una tabla de intersección o enlace para gestionar la relación. Por ejemplo en una base de datos de facturación, una factura puede tener varias líneas de factura pero el artículo que nosotros colocamos en una factura podría estar en otras facturas a su vez. En la imagen siguiente se pueden comprobar que para un caso similar al expuesto en el ejemplo anterior necesitaríamos una tercera tabla que realice las funciones de puente entre las dos. Fijémonos que la tabla tb_facturas está unida a la tabla tb_artículos por medio de la tabla tb_liniasFactura - 26 - www.professionalscat.net [email protected] @profesionalscat Figura 5.6 Relaciones varios a varios Para que una relación después no nos acarree más de un problema, los campos a relacionar entre las dos tablas, tendrán que ser del mismo tipo y con el mismo tamaño de campo, aunque el nombre del campo no tiene porqué ser el mismo, es aconsejable que lo sea, para que cuando estemos montando las relaciones no nos despistemos. Aunque esto no tendría que ocurrir si hubiéramos realizado un diseño previo de nuestra base de datos. - 27 - www.professionalscat.net [email protected] @profesionalscat 6. CONSULTAS DE SELECCIÓN Como ya se ha explicado con anterioridad, una consulta es el elemento de Access que nos servirá para poder seleccionar aquellos datos de las tablas que nos interesen mostrar en cualquier momento. Creación de consultas Para confeccionar una consulta tendremos que acceder previamente al apartado de las consultas y a través de este, podremos generar la consulta de varias formas, utilizando el botón nuevo de la barra de la ventana de la base de datos: Figura 6.1. Crear consulta nueva También podremos hacerlo utilizando el asistente de las consultas a través de la opción Crear una consulta utilizando el asistente, o bien utilizando directamente la opción Crear una consulta en vista diseño. Que aparecerá la siguiente ventana. - 28 - www.professionalscat.net [email protected] @profesionalscat Figura 6.2. Ventana diseño de consulta Lo primero que veremos en la ventana del diseño de la consulta es el cuadro Mostar tabla, desde el que podremos escoger que tablas y/o consultas utilizaremos para las construcción de nuestra consulta. En este cuadro podremos hacer doble clic sobre el objeto para colocarlo en la ventana de la consulta o bien un clic en el objeto y a continuación pulsaremos el botón Agregar. Una vez tenemos los objetos colocados en la ventana, podremos escoger aquellos campos que tienen que participar en nuestra consulta, haciendo doble clic sobre el campo que nos interese. - 29 - www.professionalscat.net [email protected] @profesionalscat Figura 6.3. Diseño de nuestra consulta Introducir criterios de selección Introducir criterios en una consulta, nos servirá para que esta, muestre aquellos registros que cumplan una serie de requisitos, como por ejemplo una listado de todos aquellos clientes de una cierta población. Para buscar un valor sencillo, simplemente lo escribiremos en la fila Criterios correspondiente al campo que deseamos comprobar. Si el campo donde escribimos el criterio es un texto, este tendrá que estar entre comillas, normalmente Access ya las coloca automáticamente. Para los valores numéricos no se incorporará ningún carácter adicional. Para los tipos de datos fecha, los introduciremos entre el símbolo de la parrilla (#), aunque normalmente también lo hace Access automáticamente. Los valores lógicos (Sí/No, VERDADERO/FASO), tampoco tendrán ningún carácter adicional. - 30 - www.professionalscat.net [email protected] @profesionalscat Figura 6.4. Introducción de criterios Podremos visualizar los resultados pulsando el botón vista de la barra de herramientas: Figura 6.5. Botón vista La ventana vista hoja de datos, realmente es exactamente igual que la ventana hoja de datos de una tabla, con la diferencia que no aparecen todos los campos de la tabla, sino solo aquellos que nosotros hayamos escogido en la consulta, tendrá el siguiente aspecto. - 31 - www.professionalscat.net [email protected] @profesionalscat Figura 6.6. Ventana vista hoja de datos Operadores de comparación de una consulta > Mayor que < Menor que >= Mayor o igual que <= Menor o igual que <> Diferente de Si lo que queremos es que sea una igualación, únicamente colocaremos el valor, sin necesidad de colocar el símbolo igual previamente. Operadores Y (AND) y O (OR) Si quisiéramos mostrar clientes de varias poblaciones, tendríamos que utilizar le operador lógico O, o bien colocar los diferentes criterios en las diferentes filas O preparadas para la ocasión: Ejemplo: “Barcelona” O “Badalona” El operador O, mostraría todos aquellos registros que cumplieran una condición u otra. Teniendo en cuenta que en una celda a la vez, solo puede existir un valor, cuando tenga que ser igual a este, siempre utilizaremos el operador O. Por otro lado, si quisiéramos que los dos valores se cumplieran a la vez, utilizaremos el operador Y. Este, normalmente lo utilizaremos cuando utilicemos los operadores de comparación - 32 - www.professionalscat.net [email protected] @profesionalscat Ejemplo: En una tabla de alumnos de un colegio, si queremos mostrar todos aquellos alumnos que tienen menos de 15 años, haríamos los siguiente en el apartado criterios del campo Edad: >15 Si por el contrario quisíeramos aquellos alumnos que se encuentran en edades comprendidas entre 10 y 15 años, sería el siguiente criterio: >=10 Y <=15 Las cláusulas ENTRE, EN y COMO Además de los operadores de comparación, Access nos ofrece la posibilidad de utilizar tres cláusulas de predicado especiales que son útiles para especificar los datos deseados en las hoja de respuestas. Entre Resulta de gran utilidad para especificar un rango de valores. Ejemplos: La cláusula Entre 10 y 20 Sería lo mismo que >=10 Y <=20. En Es muy útil cuando necesitamos especificar una lista de valores, en la que cualquiera de ellos puede coincidir con el contenido del campo que está siendo buscado. Ejemplos: La cláusula “Barcelona” O “Badalona” O “Mataró” O “Martorell” O “Tárrega” Sería lo mismo que EN(“Barcelona”;”Badalona”;”Mataró”;”Martorell”;”Tárrega”) Como Para buscar modelos en campos de texto. Podemos incluir caracteres especiales y rangos de valores en las cadenas de comparación. Utilizaremos los llamados caracteres comodín. El carácter ? cuando queramos indicar un carácter cualquier en esa posición. Un * para indicar cero o más caracteres en esa posición. - 33 - www.professionalscat.net [email protected] @profesionalscat Ejemplo: Imaginemos que sabemos una parte del apellido de un cliente y no conocemos el resto, sabemos que se llama Gómez pero no en que posición se encuentra ese Gómez en el nombre, haríamos lo siguiente: Como “*Gómez*” Consultas de selección calculadas Utilizando las columnas libres en la vista diseño, podremos realizar cálculos con los campos de las tablas. Para hacerlo tendremos que tener en cuenta que un campo siempre tiene que ir encerrado entre corchetes [Nombre del campo] cuando actúa como campo en un cálculo. Podremos utilizar los siguientes operadores matemáticos: + Sumar - Restar * Multiplicar / Dividir & Permitirá crear cadenas de texto. Figura 6.7. Cálculos en una consulta Si hacemos un clic en la fila campo de de la columna deseada y a continuación pulsamos la combinación de teclas Mayús + F2, se abre la ventana Zoom, desde donde es más cómodo introducir la expresión deseada. - 34 - www.professionalscat.net [email protected] @profesionalscat Figura 6.8. Ventana Zoom Generador de expresiones Si no sabemos muy bien como podríamos colocar los campos, símbolos, etc. dentro de una expresión, o resulta demasiado compleja para hacerla manualmente, podríamos utilizar el Generador de Expresiones. Figura 6.9. Generador de expresiones Para acceder a esta ventana, haríamos un clic en el botón Generar situado en la barra de herramientas de las consultas. - 35 - www.professionalscat.net [email protected] @profesionalscat Figura 6.10. Botón generar Desde el generador, utilizando las diferentes partes de la ventana, podremos realizar todo tipo de expresiones. En la parte izquierda de la tabla, veremos una lista de todos los objetos de Access, cuando cliquemos sobre uno de ellos, en la parte central se nos colocarán los elementos que forman parte de este objeto y al hacer un clic sobre este elemento, en la parte derecha se nos mostrarán las propiedades del mismo. También desde esta ventana podremos acceder a todas las funciones que tiene incorporadas Access. Figura 6.11. Generador de expresiones – Funciones Ordenación de los datos Normalmente, Access presenta las filas de la hoja de respuestas en el orden en que se recuperaron de la base de datos. Sin embargo, podemos ordenar la información en una consulta, utilizando la fila Orden del campo por el que deseamos ordenar. Los métodos para ordenar serán Ascendente o Descendente. - 36 - www.professionalscat.net [email protected] @profesionalscat Figura 6.12. Ordenar campos de una consulta Consultas de totales Podría ser que por alguna razón no necesitáramos ver toda la información de los datos de una tabla, sino que únicamente necesitamos totalizar estos datos, agrupándolos por algún o algunos campos concretos. Para ello, accederemos al menú Ver – Totales y a continuación procederemos a agrupar por el campo que necesitamos y a escoger la función que queremos que nos realice dicho cálculo. También podríamos pulsar el botón Totales de la barra de herramientas. - 37 - www.professionalscat.net [email protected] @profesionalscat Figura 6.13. Botón totales en la barra de herramientas Una vez realizados estos pasos para convertir la consulta de selección en una consulta de totales, Access, visualiza Agrupar por en la fila Total de todos los campos que se encuentran en la cuadrícula de diseño. En este momento, los registros de cada campo estarán agrupados pero no totalizados. Si ejecutáramos la consulta, obtendríamos una fila para cada conjunto de valores únicos, pero no totales. Podemos crear totales reemplazando el ajuste Agrupar por, por alguna de las funciones que se incorporan. - 38 - www.professionalscat.net [email protected] @profesionalscat Figura 6.14. Funciones de totales Consultas de parámetros Hasta ahora, nos hemos basado en introducir criterios de selección directamente en la ventana consulta en vista diseño. Sin embargo, no tenemos que decir los valores que deseamos que Access busque exactamente en el momento de diseñar la consulta. En su lugar, podemos incluir un parámetro en la consulta y Access emitirá un mensaje para que indiquemos el criterio antes de ejecutar la consulta. Para establecer un parámetro, introduciremos un nombre o una frase encerrada entre corchetes [Nombre o frase que deseemos colocar], en lugar de introducir un valor en la fila de criterios. Lo que encerremos entre corchetes se convertirá en el nombre por el que Access conocerá el parámetro. Access visualizará este nombre en un cuadro de diálogo cuando se ejecute la consulta, de modo que sería una buena idea introducir una frase que describa lo que en realidad deseamos. Como podemos introducir varios parámetros en una consulta cada nombre o frase debe ser única e informativa. - 39 - www.professionalscat.net [email protected] @profesionalscat Figura 6.15. Parámetros en una consulta Cuando ejecutemos la consulta aparecerá un cuadro de diálogo que nos solicitará la información del parámetro: Figura 6.16. Cuadro de diálogo solicitud de parámetro - 40 - www.professionalscat.net [email protected] @profesionalscat 7. CONSULTAS DE ACCIÓN Una buena descripción para las consultas de acción, es que son un poco peligrosas ya que modifican datos de una tabla, se recomienda que antes de ejecutarlas se realicen copia de los registros de las tablas por lo que pudiera pasar. Existes cuatro tipos diferentes de consultas de acción, cada uno de ellos actuará de una manera diferente con los registros de nuestras tablas. Consulta de Creación de tablas Consulta de Actualización Consulta de Datos anexados Consulta de eliminación Para crear una consulta de acción, empezaremos a crear una consulta como si de una de selección se tratara y para convertir una consulta de selección a cualquiera de las consultas mencionadas, haremos un clic en la opción correspondiente del menú Consulta. Figura 7.1. Consultas de acción También podríamos hacerlo a través la opción correspondiente del botón Tipo de consulta de la barra de herramientas - 41 - www.professionalscat.net [email protected] @profesionalscat Figura 7.2. Botón tipos de consulta Para ejecutar una consulta de acción, sólo tendremos que hacer clic en el botón ejecutar de la barra de herramientas de la ventana de la vista diseño de la consulta Figura 7.3. Botón ejecutar o bien, abriendo la consulta desde la ventana de la base de datos. De cualquier forma, nos indicará siempre lo que estamos a punto de modificar. Figura 7.4. Cuadro de aviso de eliminación de registros (Consulta de eliminación) Consulta de creación de tablas Servirá para almacenar como una nueva tabla, los resultados que son extraídos de una consulta de selección. Si ejecutamos la misma consulta una y otra vez sobre datos que no son modificados, puede que sea más rápido acceder a los datos desde la tabla en lugar de hacerlo desde una consulta, particularmente si esa consulta debe unir varias tablas. - 42 - www.professionalscat.net [email protected] @profesionalscat Figura 7.5. Consulta de creación de tablas en la ventana de la base de datos Al indicar a Access que queremos crear una consulta de creación de tablas, aparecerá una ventana que nos pedirá el nombre y la ubicación de la nueva tabla de datos. Figura 7.6. Cuadro de diálogo crear tabla Consulta de actualización A veces es necesario modificar un conjunto indeterminado de registros en una tabla basándose en unos criterios concretos y hacerlo manualmente sería perder demasiado tiempo. Para ello, crearemos consultas de actualización, que servirán precisamente para modificar los datos de una tabla. - 43 - www.professionalscat.net [email protected] @profesionalscat Figura 7.7. Consulta de Actualización en la ventana de la base de datos Consulta de datos anexados Este tipo de consultas, nos permitirá copiar un conjunto seleccionado de información e insertarlo en otra tabla. También podremos utilizar una consulta de datos anexados para traer datos procedentes de otra fuente a la base de datos (por ejemplo, una lita de nombres y direcciones obtenidas a partir de una empresa de lista de correos). Figura 7.8. Consulta de Datos anexados en la ventana de la base de datos Cuando le indicamos a Access, que queremos convertir la consulta de selección en una consulta de datos anexados, primero nos pedirá que le indiquemos como se llama la tabla a la que queremos agregar los datos y a continuación en la ventana de diseño, aparecer una fila nueva llamada anexar a, donde, si los campos se llaman igual automáticamente colocará cada uno de los nombres a los que queremos añadir los datos correspondientes y sino, podremos escogerlos manualmente desde la lista correspondiente de los nombres de campo. - 44 - www.professionalscat.net [email protected] @profesionalscat Figura 7.9. Escoger campos anexar Consulta de eliminación La utilizaremos para eliminar de forma masiva los datos de una tabla, siguiendo unos criterios determinados. Figura 7.10. Consulta de Eliminación en la ventana de la base de datos - 45 - www.professionalscat.net [email protected] @profesionalscat 8. DISEÑO DE CONSULTAS AVANZADAS – SQL Una breve historia de SQL En el trasfondo de todas las consultas de Microsoft Access se encuentra el lenguaje de órdenes de base de datos SQL. Aunque podemos diseñar la mayoría de las consultas utilizando el interfaz gráfico de la cuadrícula de diseño, Access guarda cada consulta que ha sido diseñada como un mandato SQL. Para aquellos tipos de consultas avanzadas que utilizan los resultados de una segunda consulta como condición de comparación, necesitamos conocer SQL para poder definir la segunda consulta (denominada subconsulta). Además, no podremos utilizar la cuadrícula de diseño para construir todos los tipos de consultas disponibles en Access; para algunas de ellas deberemos utilizar SQL. A principios de los años setenta, en sus proyectos de investigación, IBM ideó un lenguaje denominado Structured English Query Language (SEQUEL) para construir un sistema de gestión de base de datos relacional. Este lenguaje evolucionó hasta convertirse en SEQUEL/2 y finalmente en Structured Query Language (SQL, Lenguaje de consulta estructurado). Además, hubo otras empresas que se interesaron por el concepto de bases de datos relacionales y el interfaz SQL que había surgido. Relational Software, Inc (actualmente Oracle Corporation) creó un producto denominado Oracle en el año 1979. En 1981, IBM lanzó su primer producto, denominado SQL Data System (SQL/DS). La sintaxis SELECT de SQL en Microsoft Access La sentencia SELECT forma el núcleo del lenguaje de base de datos SQL. Utilizaremos la sentencia SELECT para seleccionar o recuperar las filas y columnas deseadas a partir de las tablas de nuestra base de datos. Las sintaxis de la sentencia SELECT consta de cinco cláusulas principales, construidas normalmente de la siguiente manera. Sintaxis: SELECT <lista de campos> FROM <lista de tabla> WHERE <especificación de selección de fila (criterios)> GROUP BY <especificación de agrupaciones> HAVING <especificación de selección de grupo> ORDER BY <especificación de ordenación>; - 46 - www.professionalscat.net [email protected] @profesionalscat Nombre de la columna El nombre de la columna (normalmente el campo) será especificado por el nombre de la tabla o consulta de donde se extrae el dato y a continuación el nombre del campo que queremos separado por un punto. Ejemplo: Para especificar un campo llamado NumFactura de una tabla denominada Tb_Facturas utilizaremos lo siguiente: Tb_Facturas.NumFactura Si la tabla o el campo tuvieran espacios en blanco, estos tendrían que estar encerrados entre corchetes. Para especificar un campo llamado Num Factura de una tabla denominada Tb_Facturas utilizaremos la siguiente sintaxis: Tb_Facturas.[Num Factura] Cláusula FROM Especifica las tablas o consultas que proporcionan los datos de origen para su consulta. Sintaxis: FROM {Nombre de tabla | Nombre de consulta de selección | Tabla combinada},... IN <especificación del origen> {INNER | LEFT | RIGHT} JOIN (para hacer las relaciones entre tablas) {Nombre de la tabla | Nombre de la consulta | tabla combinada} ON <especificación de combinación> Ejemplo: Para seleccionar la información acerca de los clientes cuyas compras superen los 100 euros, introduciremos los siguiente cEjempPedidoCliente>100 Código completo a utilizar: SELECT tblClientes.IDCliente, tblClientes.Nombre, tblClientes.Apellidos, tblPedidos.FechaPedido, tblDetallesPedido.NúmeroISBN, tblLibros.Título, tblDetallesPedido.Cantidad, tblDetallesPedido.Descuento, tblLibros.PrecioSug, Round(CCur((tblDetallesPedido.Cantidad*tblLibros.PrecioSug)*(1- - 47 - www.professionalscat.net [email protected] @profesionalscat tblDetallesPedido.Descuento)),2) AS PrecioExt FROM (tblClientes INNER JOIN tblPedidos ON tblClientes.IDCliente = tblPedidos.IDCliente) INNER JOIN (tblLibros INNER JOIN tblDetallesPedido ON tblLibros.NúmeroISBN = tblDetallesPedido.NúmeroISBN) ON tblPedidos.IDPedido = tblDetallesPedido.IDPedido WHERE (((Round(CCur(([tblDetallesPedido].[Cantidad]*[tblLibros].[PrecioSug])*(1[tblDetallesPedido].[Descuento])),2))>100)); Consultas de Acción SQL Utilizaremos este tipo del consulta SQL para eliminar, insertar o actualizar datos o para crear una tabla nueva a partir de datos existentes. Las consultas de acción son particularmente potentes dado que nos permiten operar sobre conjuntos de datos, no sobre simples filas. Sentencia DELETE Elimina una o más filas de una tabla. La cláusula WHERE es opcional. Si no especificamos una cláusula WHERE, serán eliminadas todas las filas de la tabla que se especifican en cláusula FROM. Si especificamos una cláusula WHERE, la condición de búsqueda será aplicada a cada una de las filas de la tabla, y solamente serán eliminadas aquellas filas que cumplan las condiciones. Sintaxis DELETE [<Lista_de_Selección] FROM {(Nombre_de_tabla [ [AS] nombre_de_correlación ] | nombre_consulta_de_selección [ [AS] Nombre_de_correlación ] } | <tabla combinada>}, … (IN <especificación_del_origen>) [WHERE <criterios>]; Ejemplos Para eliminar todas las filas de la tabla tblDetallesdePedido, introduciremos lo siguiente: DELETE FROM tblDetallesPedido; Para eliminar todos los registros de la tabla tbLibros que son libros de MS-DOS, introduciremos los siguiente: DELETE tbLibros.*, tbLibros.NumeroISBN FROM tbLibros WHERE (((tbLibros.NumeroISBN) IN SELECT tbCategoriasLibros.NumeroISBN FROM tbCategorias INNER JOIN TbCategoriasLibro ON tbCategorias.IDCategoria = tbCategoriasLibro.IDCategoria WHERE tbCategorias.Categoria = “MS-DOS”))); - 48 - www.professionalscat.net [email protected] @profesionalscat Sentencia INSERT Inserta uno o más registros nuevos en la tabla especificada. Cuando utilicemos la cláusula VALUES, solamente será insertada una fila. Si utilizamos una sentencia de selección, el número de filas insertado será igual al número de registros devueltos por la sentencia de selección. Sintaxis: INSERT INTO nombre_de_tabla [((nombre_campo), …)] IN <especificación_del_origen> ] (VALUES ((literal), …) | sentencia_de_selección) Ejemplo: Para insertar una nueva fila en la tabla tbLibrerias, introduciremos los siguiente: INSERT INTO tbLibrerias (NombreLibreria, Direccion, ciudad, Provincia, CP, Pais, Telefono, Fax, Mail) VALUES (“El buen libro”, “C/ Nueva, 33”, “Igualada”, “Barcelona”, “08700”, “España”, “938044433”, “938044433”, “[email protected]”) Para calcular los totales de las ventas realizadas en un determinado mes e insertarlos en una tabla de trabajo de totales, introduciremos los siguiente: PARAMETERS [Año a resumir:] SHORT, [Mes a resumir:] SHORT; INSERT INTO zSumVentas (NumeroISBN, Titulo, MesVentas, TotalVentas) SELECT tbLibros.NumeroISBN, TbLibros.Titulo, Formato([FechaPedido],”mmmm” “,” “yyyy”) AS MesPedido, Suma(Round(CMoneda(([Cantidad]*[PrecioSug])*(1-[Descuento]), 2)) AS TotalPedido FROM tbPedidos INNER JOIN (TbLibros INNER JOIN tbDetallesPedido ON tbLibros.NumeroISBN = TbDetallesPedido.NumeroISBN) ON (TbPedidos.IDPedido = TbDetallesPedido.IDPedido WHERE (((Año [FechaPedido])) = [Año a resumir:]) AND ((Mes([FechaPedido])) = [Mes a resumir])) GROUP BY TbLibros.NumeroISBN, TbLibros.Titulo, Formato([FechaPedido],”mmmm” “, ” “yyyy”); Sentencia SELECT…INTO Crea una nueva tabla a partir de los valores seleccionados de una o más tablas. Sintaxis: SELECT [ALL | DISTINCT | DISTINCTROW | TOP número [PERCENT] ] <lista_de_selección> INTO nombre_nueva_tabla [IN <especificación_del_origen>] FROM { {nombre_de_tabla [ [AS] nombre_de_correlación] | nombre_consulta_seleccion [ [AS] nombre_de_correlacion]} | <tabla_combinada> }, … [IN <especificación_del_origen>] [WHERE <criterios>] - 49 - www.professionalscat.net [email protected] @profesionalscat [GROUP BY nombre_campo, ...] [HAVING <criterios>] [UNION [ALL] <sentencia_de_seleccion>] [ [ORDER BY {Nombre_Campo [ASC | DESC] }, ... ] | IN <”Nombre_base_datos_origen”> <[Cadena_de_conexión_origen]> [WITH OWNERACCESS OPTION]; Ejemplo: Para crear una nueva tabla que resuma todas las ventas por libro y por mes, introduciremos lo siguiente: SELECT TbLibros.NumeroISBN, TbLibros.Titulo, Format([FechaPedido], “mmm” “ yyyy”””) AS MesVentas, Sum(Round(CCur(([Cantidad]*[PrecioSug])*(1-[Descuento])), 2)) AS TotalVentas INTO zTbVentasMensuales FROM TbPedidos INNER JOIN (TbLibros INNER JOIN TbDetallesPedido ON TbLibros.NumeroISBN = TBDetallesPedido.NumeroISBN) ON tbPedidos.IDPedido = TbDetallesPedido. Impedido WHERE (((TbLibros.FueraDeImpr) = False)) GROUP BY TbLibros.NumeroISBN, TbLibros.Titulo, Format([FechaPedido], “mmm” “ yyyy” “”); Sentencia UPDATE La utilizaremos para actualizar las columnas seleccionas de todos los registros que satisfacen los criterios de búsqueda. Sino se introduce una cláusula WHERE, se verán afectados todos los registros de la tabla o consulta especificada. Sintaxis: UPDATE { {nombre_de_tabla [ [AS] nombre_de_correlacion ] | nombre_de_consulta_de_seleccion [ [AS] nombre_de_correlacion ] <tabla_combinada>}, ... [IN <especificación_del_origen>] } SET {Nombre_columna = {<expresión> | NULL }}, ... [WHERE <condicion_de_busqueda>] Ejemplo: Para incrementar el precio de todos los libros sobre Visual Basic en un 10%, introduciríamos lo siguiente: UPDATE TbLibros SET tbLibros.precioSug = Round(CCur([PrecioSug]*1.1), 2) WHERE (((TbLibros.NumeroISBN) IN (SELECT tbCategoriasLbiro.NumeroISBN FROM TbCategorias INNER JOIN TbCategoriasLibro ON tbCategorias.IDCategoria = TbCategoriasLbiro.IDCategoria WHERE TbCategorias.Categoria = “Visual Basic”))); - 50 - www.professionalscat.net [email protected] @profesionalscat 9. LOS FORMULARIOS Los formularios son los objetos de la base de datos que nos permiten insertar, modificar, visualizar o eliminar datos de una tabla o consulta de una forma más atractiva y cómoda para el usuario. Podremos diseñar formularios para muchos propósitos, presentar y editar datos, formularios que den acceso a otros objetos, introducción de datos, presentación de mensajes, imprimir información, etc. Los formularios tienen la ventaja de poder: Mostrar datos de varias tablas o consultas a la vez Realizar cálculos en campos Crear y utilizar gráficos Utilizar diferentes tipos de fuentes, colores, y cualquier otro formato Encabezados, secciones de detalle y pies Normalmente, colocaremos la información de la tabla o consulta que deseamos presentar, en la sección de detalle en el centro de la ventana Formulario. Podemos añadir un encabezado en la parta superior de la ventana o un pie en la parte inferior de la misma para visualizar la información o los controles que no es necesario cambiar cada registro diferente. Los Autoformularios Estos son la forma más rápida y sencilla de crear un formulario para introducir datos en una tabla. Para crearlo, desde la ventana principal de la base de datos, haremos un clic en nuevo. Aparecerá el cuadro de diálogo que nos permitirá escoger el tipo de formulario que queremos crear, así como la tabla o consulta en que se tienen que recoger los datos. - 51 - www.professionalscat.net [email protected] @profesionalscat Figura 9.1. Cuadro Nuevo formulario Podremos crear cinco tipos de autoformularios: En columnas 1 registro por pantalla En tabla Varios registros por pantalla (formularios continuos) Hoja de datos Parecidos al estilo de las tablas Tablas dinámicas Gráficos dinámicos Desplazamiento a través de un formulario y tratamiento de los datos Introducir y modificar datos Probablemente la mayor parte de los formularios que diseñemos permitirá insertar nuevos registros, cambiar los valores de los campos o eliminar registros en vista Formulario o en Vista Hoja de datos. Para introducir un nuevo registro, podremos hacerlo utilizando las diferentes opciones que nos proporciona Access. Desde el menú Insertar – Nuevo registro - 52 - www.professionalscat.net [email protected] @profesionalscat Figura 9.2. Insertar – Nuevo registro Utilizando el botón nuevo registro de la barra de herramientas: A través del botón nuevo registro de los botones de desplazamiento del propio formulario: Figura 9.3. Nuevo registro – Botones de desplazamiento Estos botones, al igual que en las tablas o consultas, nos servirán para poder desplazarnos por los diferentes registros de un formulario. Figura 9.4. Botones de desplazamiento En alguna ocasión, estaremos utilizando un formulario de introducción de datos, por lo que al abrir el formulario, aparecería preparado para la inserción de un nuevo registro. Si un formulario permite realizar actualizaciones, podremos cambiar o eliminar fácilmente los datos existentes en las tablas o consultas de donde proceden los datos del formulario. Si el formulario ha sido diseñado en Vista hoja de datos, podremos hacerlo exactamente igual que cuando trabajamos con una tabla. Al igual que en las hojas de datos, para modificar, tendremos que situarnos en el registro que queramos cambiar y a partir de ahí utilizar las técnicas como si se tratara de un procesador de texto. Teniendo en cuenta que para saltar de campo, podremos utilizar la tecla TAB o para ir al campo anterior Máyus – TAB. - 53 - www.professionalscat.net [email protected] @profesionalscat Diseño de formularios Un formulario podremos realizarlo desde cero utilizando la vista diseño o bien modificar su diseño, utilizando la misma vista. Para crear un formulario desde cero, podremos utilizar la opción Crear un formulario en Vista diseño de la ventana principal de la base de datos o bien acceder al botón Nuevo y a continuación escoger Vista diseño y la tabla o consulta de la que se quieren mostrar los datos. Desde la ventana de vista diseño, podremos controlar cualquier control que aparece en un formulario. Colocar etiquetas adicionales, botones de acción, listas desplegables (cuadros combinados), etc. - 54 - www.professionalscat.net [email protected] @profesionalscat Figura 9.5. Vista diseño de formulario El cuadro de herramientas Es el cuadro que nos proporciona todos los objetos posibles que podemos colocar en un formulario. También contiene un botón denominado más controles que permite el acceso a todos los controles ActiveX. Para colocar un determinado control en el formulario solo pulsaremos el botón correspondiente a ese control en el cuadro de herramientas. Cuando desplacemos el puntero del ratón sobre el formulario, éste cambiará su apariencia convirtiéndose en un icono que representa la herramienta que se ha seleccionado. Situamos el punteo del ratón el lugar donde queremos colocar el control y pulsamos el botón izquierdo para colocar el control sobre el formulario. Si queremos cambiar el tamaño del control en el momento de su colocación en el formulario, haremos clic y arrastraremos el puntero del ratón hasta - 55 - www.professionalscat.net [email protected] @profesionalscat alcanzar el tamaño deseado (También podemos cambiar el tamaño de un control una vez colocado arrastrando los ajustadores de tamaño de sus bordes o esquinas). Figura 9.6. Cuadro de herramientas Herramienta seleccionar objetos: Es la herramienta predeterminada. Utilizaremos esta herramienta para seleccionar, cambiar el tamaño y editar los controles existentes. Botón Asistente para controles: Si este botón está activado, cuando pulsemos un control que tenga asignado un asistente, podremos ir siguiendo una serie de pasos para configurar el control. Herramienta etiqueta: Utilizaremos esta herramienta para crear controles de etiqueta que contengan un texto fijo en el formulario. Por omisión, la mayor parte de los controles poseen un control de etiqueta asociado a los mismos. Podemos utilizar esta herramienta para crear etiquetas independientes en los encabezados o para colocar instrucciones en el formulario. Cuadro de texto: Para crear controles de cuadro de texto para la visualización de campos de las tablas o para realizar cálculos entre campos. Grupo de opciones: Utilizaremos este para crear un grupo de opciones que contenga uno o más botones de alternar, botones de opción o casillas de verificación. Podemos asignar un valor numérico independiente para cada botón o casilla de verificación que se incluya en el grupo. Cuando tengamos más de un botón o casilla de verificación en un grupo, sólo uno de ellos podrá estar seleccionado en un momento dado y el valor de ese botón se convertirá en el valor del grupo de opciones. Botón de alternar: Servirá para crear un control que contenga un valor Activado/desactivado, verdadero/falso o Sí/No. Si se asocia el control a un campo de tabla - 56 - www.professionalscat.net [email protected] @profesionalscat o consulta, podremos cambiar el valor del campo a través de este control. Botón de opción: También se le puede llamar botón de radio. Estos serán parecidos a los botones de alternar en cuanto al valor que guardan. Si se encuentra en un grupo de opciones, únicamente podremos pulsar uno de ellos, desactivándose el otro al marcar la opción que deseemos. Casilla de verificación: Al igual que las anteriores, será para controlar valores Verdadero/Falso, Sí/No, Activado/Desactivado. Cuadro combinado: utilizaremos esta herramienta para crear un cuadro desplegable que contenga una lista de posibles valores para el control y un cuadro de texto que puede ser editado manualmente. Podremos cambiar los valores del cuadro, utilizando una tabla o consulta o una lista de valores previamente definida. Cuadro de lista: Parecida a la anterior, pero mostraría varios valores a la vez, dependiendo de lo grande que confeccionáramos nuestro cuadro. Podremos seleccionar varios valores en la lista a la vez. Botón de comando: Podremos utilizarlo para activar una macro o procedimiento de evento que realice una determinada acción. Imagen: La utilizaremos para añadir una imagen estática en el formulario. Marco de objeto independiente: Servirá para añadir un objeto procedente de otra aplicación que soporte la incrustación y vinculación de objetos. El objeto pasará a formar parte del formulario, no de los datos de la tabla o consulta subyacente. Podremos añadir imágenes, sonidos, gráficos o diapositivas para mejorar la apariencia del formulario. Marco de objeto dependiente: Lo utilizaremos para mostrar los objetos OLE de una tabla o consulta. Salto de página: Podremos utilizarlo cuando nuestro formulario contenga tantos datos que no quepan correctamente. Podremos montar un formulario de varias páginas. - 57 - www.professionalscat.net [email protected] @profesionalscat Control ficha: Utilizaremos esta herramienta para crear una serie de páginas de fichas en un formulario. Cada página puede contener un número de otros controles que visualicen información. El control ficha funciona de forma similar a muchas de las ventanas de cuadros de diálogo u hoja de propiedades de Access. Subformulario/subinforme: Esta herramienta será para incrustar otro formulario en el formulario actual. Podemos utilizar un subformulario para mostrar datos procedentes de una tabla o consulta que están relacionados con los datos del formulario principal. Access mantiene el enlace entre los dos formularios de forma automática. Línea: Utilizaremos esta herramienta para añadir línea al formulario y mejorar su apariencia. Rectángulo: Utilizaremos esta herramienta para añadir rectángulos al formulario y mejorar su apariencia. Más controles: Al pulsar este botón mostrará un menú que contendrá todos los controles ActiveX que han sido instalados en el sistema. No todos los controles ActiveX pueden funcionar correctamente en Access. La lista de campos La lista de campos se utiliza en combinación con el cuadro de herramientas para colocar controles dependientes (controles vinculados a campos de una tabla o consulta) en el formulario. Para hacerlo simplemente será necesario arrastrar los campos de la lista hacia la zona del formulario que deseemos colocarlo. La hoja de propiedades El formulario, cada sección del formulario (encabezado, detalle y pie) y cada control del formulario poseen una lista de propiedades asociadas, que pueden ser definidas haciendo uso de la hoja de propiedades: - 58 - www.professionalscat.net [email protected] @profesionalscat Figura 9.7. Cuadro de Propiedades El tipo de propiedades que se puedan especificar varían dependiendo del control que se tenga seleccionado. Desplazamiento y cambio de tamaño de los controles Por omisión, Access crea cuadros de texto de tres centímetros de ancho con una etiqueta situada dos centímetros a la izquierda del cuadro de texto. Para algunos de los campos, tres centímetros es más que suficiente para visualizar el valor del campo, pero para otros, el cuadro de texto no será suficiente o podría ser demasiado grande para el contenido del mismo. Para cambiar la posición y el tamaño de un control, en primer lugar será necesario que seleccionemos el control, tendremos que asegurarnos que tenemos presionado el botón de la herramienta seleccionar objetos. Cuando hagamos clic sobre el objeto, aparecerán los ajustadores de tamaño del mismo. Figura 9.8. Ajustadores de tamaño. Para cambiar el tamaño, nos situaremos sobre los ajustadores de tamaño y aparecerán unas flechas de doble punta, a través de ellas, clicando y arrastrando cambiaremos el tamaño del objeto. - 59 - www.professionalscat.net [email protected] @profesionalscat Figura 9.9. Cambiar tamaño de un objeto Si quisiéramos mover el objeto, buscaríamos encima del contorno del mismo, el cursor en forma de mano, con este podríamos mover el objeto y además la etiqueta que tenga asociada. Figura 9.10. Mover objeto y etiqueta asociada Si sólo quisiéramos mover el objeto, se puede apreciar que en la parte superior izquierda del control seleccionado hay un cuadrado más grande desde donde podríamos hacerlo. Aparecerá un símbolo con un dedo apuntando hacia arriba. Figura 9.11. Mover solo objeto sin etiqueta. Simplificación de la introducción de datos con un formulario Un inconveniente que se presenta al trabajar con una base de datos relacional es que a menudo trabajamos con información almacenada en varias tablas. Esto no supone un problema cuando estamos utilizando una consulta para unir los datos, aunque el trabajo con varias tablas puede crear confusión si lo que estamos haciendo es introducir nuevos datos. Access proporciona algunas formas de mostrar la información procedente de varias tablas relacionadas, para facilitar la introducción de los datos. Cuadros combinados Cuando creamos un cuadro combinado desde el cuadro de herramientas y tenemos activado el botón Asistente para controles, aparece un asistente desde el que podremos configurar nuestro cuadro combinado según deseemos. - 60 - www.professionalscat.net [email protected] @profesionalscat Figura 9.12. Asistente para cuadros combinados El primer paso, según se muestra la figura 9.12., anterior, podremos escoger que valores aparecerán en el cuadro combinado y para que se utilizarán los mismos. Si escogemos la primera opción Deseo que el cuadro combinado busque los valores en una tabla o consulta, previamente tendremos que tener creada la tabla o consulta que necesitamos. La opción siguiente Escribiré los valores que desee, será apropiada para utilizarla cuando tengamos pocos valores en una lista y no sea necesario añadir más valores posteriormente. La última opción Buscar un registro en el formulario según el valor que he seleccionado en el cuadro combinado, solo aparecerá cuando el cuadro combinado lo coloquemos en un formulario y será precisamente para buscar un valor en el formulario donde lo estemos colocando. Dependiendo de la opción que escojamos, el asistente se comportará de diferentes formas, si escogemos la primera, nos preguntará de qué tabla o consulta queremos mostrar los valores. La segunda, nos mostrará escribir a nosotros los valores y la última nos preguntará qué campo será el que contendrá la información que queremos buscar en el cuadro combinado. - 61 - www.professionalscat.net [email protected] @profesionalscat Figura 9.13. Asistente para cuadros combinados. Segundo paso (depende de la opción seleccionada en el primero) Una vez colocado el cuadro combinado en nuestro formulario, podremos modificar su aspecto desde la ventana de propiedades de dicho cuadro. Figura 9.14. Pestaña Formato de las propiedades del cuadro combinado Número de columnas: Número de columnas que contendrá el cuadro combinado y que dependiendo de la propiedad Ancho de columna, aparecerán cuando despleguemos el cuadro combinado. Como hay un cuatro aparecerán cuatro columnas, siempre y cuando en el Ancho de columna no exista ningún cero en la anchura de las columnas. - 62 - www.professionalscat.net [email protected] @profesionalscat Figura 9.15. Cuadro combinado población con cuatro columnas Encabezados de columna: Por si queremos que en las columnas visibles aparezca el nombre del campo. Ancho de columnas: El ancho que se le dará a cada una de las columnas, en el ejemplo se especifica como: Figura 9.16. Ancho de columnas Filas en lista: La cantidad de filas (poblaciones) que se verán cuando despleguemos el cuadro combinado. Ancho de la lista: El ancho total del cuadro combinado. Si se coloca la palabra Auto la lista desplegable se adaptará al ancho del cuadro combinado (podrían no verse todos los campos correctamente), normalmente el ancho de la lista es la suma de todos los anchos de las columnas. En este caso 10cm. En la pestaña Datos de la ventana de propiedades del cuadro combinado, tendremos aquellas propiedades referentes a los datos que aparecen dentro del cuadro. - 63 - www.professionalscat.net [email protected] @profesionalscat Figura 9.17. Ventana propiedades de cuadro combinado – Pestaña Datos Tipo de origen de la fila: De donde serán los datos mostrados en el cuadro combinado. Si de una tabla o consulta o bien de una lista de valores que escribiremos nosotros. Origen de la fila: Si hemos escogido en la propiedad Tipo de origen de la fila Tabla/Consulta, en este momento marcaremos la tabla o consulta de donde procederán los datos. Si por el contrario hubiéramos marcado Lista de valores, ahora colocaríamos los valores que necesitamos separados por punto y coma (;) Ejemplo: Barcelona;Tarragona;LLeida;Girona Columna dependiente: Será la columna que contendrá el valor que guardaremos en el campo de la tabla si este control lo tuviéramos asociado con alguno o bien el valor que utilizará posteriormente para realizar la búsqueda que necesitemos. Limitar a la lista: Si establecemos este valor a Sí, no podremos colocar valores que no se encuentren dentro de la lista. Cuadros de lista Un cuadro de lista, es prácticamente lo mismo que un cuadro combinado, con la diferencia que en lugar de aparecer una flecha para poder desplegar el cuadro, aparecerá directamente la lista para poder escoger el valor o valores que se desee - 64 - www.professionalscat.net [email protected] @profesionalscat Figura 9.18. Cuadro de lista Dependiendo si la propiedad Selección múltiple que se encuentra en la ventana de propiedades en la pestaña Otras, está en ninguna, simple o extendida, la forma de las posibles selecciones será diferente. Ninguna: No se permiten selecciones múltiples, únicamente permite escoger un valor. Simple: Los elementos múltiples se seleccionan o deseleccionan eligiéndolos con el ratón o presionando la barra espaciadora. Extendida: Los elementos múltiples se seleccionan manteniendo presionada la tecla MAYÚS y eligiéndolos con el ratón o manteniendo presionada MAYÚS y presionando una tecla de dirección para extender la selección desde el elemento seleccionado previamente al elemento actual. También puede seleccionar elementos arrastrando el ratón. Manteniendo presionada CTRL y haciendo clic en un elemento, selecciona o deselecciona ese elemento. Propiedad column de los cuadros de lista o cuadros combinados Si deseamos que uno de los valores de cualquiera de las columnas nos aparezca en otro cuadro de texto, por ejemplo que al seleccionar la población, al lado nos coloque el nombre de la población, el código postal y la provincia, utilizaremos la propiedad column. Teniendo en cuenta que la primera columna será la número 0, su sintaxis será la siguiente: NombreControl.column(NúmeroColumna) Ejemplo: =NumPoblacion.column(1) & " - " & NumPoblacion.column(2) & " (" & NumPoblacion.column(3) & ")" Aparecerá como la imagen siguiente: - 65 - www.professionalscat.net [email protected] @profesionalscat Crear una plantilla con Access Podremos crear un formulario o informe de Access y después hacer que sea la plantilla predeterminada para la base de datos. Para hacerlo, una vez tengamos creado el objeto iremos al menú Herramientas – Opciones y en la pestaña Formularios / Informes, asignaremos el formulario e informe que nosotros queremos como predeterminado. Figura 9.19. Plantilla para formularios o informes Crear un autoformato en Access Al igual que la opción anterior, primero crearemos el formulario o informe que necesitamos y a continuación si queremos guardarlo como Autoformato para que aparezca cada vez que utilicemos el asistente en la lista de los autoformatos: - 66 - www.professionalscat.net [email protected] @profesionalscat Figura 9.20. Estilos a aplicar en Asistente para formularios Iremos, con el formulario abierto en vista diseño al menú Formato – Autoformato: Figura 9.21. Formato – Autoformatos Escogeremos la opción Personalizar... y a partir de allí escogeremos si queremos crear un nuevo autoformato, modificar uno existente o bien eliminar uno que ya no queremos volver a utilizar. - 67 - www.professionalscat.net [email protected] @profesionalscat Figura 9.22. Cuadro de diálogo de Personalizar autoformato Creará nuestro formulario/informe de autoformato con las características del que tengamos abierto en ese momento. - 68 - www.professionalscat.net [email protected] @profesionalscat 10. INFORMES Los informes constituyen la mejor manera de crear una copia impresa de la información extraída o calculada a partir de los datos de la base de datos. Aunque cualquier otro objeto se puede imprimir, e incluso los formularios se pueden preparar para la impresión, los informes poseen dos ventajas principales sobre otros métodos de impresión de datos. Los informes pueden comparar, resumir y calcular subtotales a partir de grandes cantidades de datos. Los informes pueden ser creados para generar facturas, pedidos de compra, etiquetas postales, elementos de presentación y otros tipos de documentos de salida que podrían ser necesarios para dirigir un negocio de manera eficiente. Los informes están diseñados para agrupar datos, presentar cada grupo de manera independiente y efectuar cálculos. Los informes funcionan de la siguiente manera: Podemos definir hasta un máximo de 10 criterios de agrupación para independizar los diferentes niveles de detalle. Podemos definir encabezados y pies independientes para cada grupo. Podemos efectuar cálculos complejos, no sólo dentro de un grupo o de un conjunto de filas sino también a través de los grupos. Además de los encabezados y pies de página, podemos definir un encabezado y un pie para todo el informe. Al igual que en los formularios, podemos incluir imágenes y gráficos en cualquier sección de un informe. También podemos incluir subinformes o subformularios dentro de las secciones de un informe. Origen de los datos en un informe La mayor parte de la información en un informe procede de los datos guardados en una tabla o bien de una consulta que se ha realizado con los datos de estas tablas. Por lo tanto, cuando creamos un informe necesariamente lo primero que tenemos que hacer es establecer el origen de los mismos. Para ello, tendremos que actuar prácticamente igual que en los formularios. Cuando creemos un Informe en Vista diseño, desde el cuadro de diálogo Nuevo, escogeremos la tabla o consulta en que necesitamos basar nuestros datos. - 69 - www.professionalscat.net [email protected] @profesionalscat Figura 10.1. Cuadro de diálogo Nuevo Informe. O bien desde las propiedades del informe en la pestaña datos y en la propiedad origen del registro. Figura 10.2. Propiedades de informe – Origen del registro Creación de informes utilizando el asistente Una forma rápida y fácil de crear un informe es utilizar el asistente para informes que incorpora Access. Esta función es parecida a la que se incorporaba para la creación de los formularios. Para crear un informe utilizando el asistente, podremos acceder al mismo a través de la opción Crear un informe utilizando el asistente de la ventana de la base de datos - 70 - www.professionalscat.net [email protected] @profesionalscat Figura 10.3. Asistente para informes o bien a través de la opción Asistente para informes del cuadro de diálogo de nuevo informe que se accede a través del botón Nuevo. Figura 10.4. Nuevo informe – Asistente para informes Una vez hemos hecho la elección del asistente, aparecerá el cuadro de diálogo del asistente, en el primer paso nos dejará escoger la tabla o tablas / consulta o consultas que tienen que contendrán los campos que formarán nuestro informe. - 71 - www.professionalscat.net [email protected] @profesionalscat Figura 10.5. Asistente para informes – campos del informe A través de los botones centrales, igual que hacíamos con el asistente para formularios, podremos seleccionar los campos necesarios. Dependiendo de si escogemos una tabla o consulta o más de una tabla o consulta, aparecerá en el siguiente paso un cuadro diferente. Figura 10.6. Aparecerá si escogemos una sola tabla Figura 10.7. Aparecerá si escogemos más de una tabla La figura 10.6 será la que aparecerá cuando escojamos una sola tabla o consulta y nos ayudará a colocar algún nivel de agrupamiento de los datos en nuestro informe. - 72 - www.professionalscat.net [email protected] @profesionalscat La figura 10.7 será algo parecido pero el nivel de agrupamiento principal se podrá hacer por la tabla principal o bien que aparezcan todos los datos juntos por la tabla secundaria. En el ejemplo, la tabla principal, o sea la que tiene la clave principal única, será Tb_Clientes y la secundaria, es decir la que el campo relacionado no es clave principal será Tb_Articulos. Al hacer siguiente si hemos escogido una sola tabla o consulta, aparecerá directamente la opción que nos permitirá ordenar los datos (Figura 10.8) y si hemos escogido más de un objeto, aparecerá el cuadro del nivel de agrupamiento, es decir, la figura 10.6. y a continuación el paso siguiente ya nos mostrará el cuadro para ordenar los datos (Figura 10.8). Figura 10.8. Paso del asistente para informes – Ordenación de los datos Al hacer siguiente podremos indicarle a Access, como queremos que distribuya los campos dentro del informe y además que orientación le queremos dar a nuestra página. - 73 - www.professionalscat.net [email protected] @profesionalscat Figura 10.9. distribución de los datos y orientación de la página En el paso siguiente nos dará a elegir entre los modelos de formato que tiene el Access incorporados. Figura 10.10. Formato del informe - 74 - www.professionalscat.net [email protected] @profesionalscat Al final en el último paso solo solicitará el nombre de nuestro informe, que además le servirá para utilizado como título del informe al imprimir. Figura 10.11. Título del informe Encabezados, secciones de detalle, pies y grupos Un informe dispondrá de diferentes partes según lo necesitemos. Posibles partes de un informe: Encabezado del informe: Solo se imprimirá en la primera página del informe Encabezado de página: Se visualizará en todas las páginas del informe Encabezado de grupo: Aparecerá cuando hayamos realizado una agrupación. Existirán tantos encabezados de grupo como agrupaciones necesitemos. Detalle: Un informe no tendría sentido sin la sección detalle pues será la zona donde se ubicarán los datos. Es la única zona que no se puede desactivar. Pie de grupo: Podremos activarla o no si necesitamos que cuando finalice el grupo en cuestión, aparezca algún tipo de información o realice algún tipo de operación matemática. Pie de página: Aparecerá en todas las páginas del informe. Pie del informe: Sólo se imprimirá en la última página del informe. - 75 - www.professionalscat.net [email protected] @profesionalscat Figura 10.12. Secciones de un informe Si necesitamos realizar algún tipo de ordenación o agrupación en un informe, accederemos a través de la opción Ver – Ordenar y agrupar - 76 - www.professionalscat.net [email protected] @profesionalscat Figura 10.13. Cuadro de Ordenar y agrupar Desde este cuadro, podremos indicarle si queremos ordenar o bien agrupar. Si marcamos la opción Sí, en las propiedad Encabezado del grupo de un campo, automáticamente estaremos agrupando por este campo, si no, únicamente podremos indicarle un tipo de ordenación a través de la columna Orden. Configuración de la impresión Desde la opción Configurar página del menú Archivo en la vista diseño del informe, podremos configurar los márgenes del documento y su orientación, así como las columnas en las que queremos que se distribuyan los datos Figura 10.14. Cuadro de diálogo configurar página - 77 - www.professionalscat.net [email protected] @profesionalscat 11. MACROS En Microsoft Access, podemos definir una macro para que realice cualquier tarea que pudiese ser iniciada con el teclado o con el ratón. La verdadera potencia de las macros de Access es su habilidad para automatizar la respuesta a muchos tipos de eventos sin que sea necesario aprender un lenguaje de programación. Un evento puede ser un cambio en los datos, la apertura o cierre de un formulario o informe, o incluso un cambio de selección de un control a otro. Dentro de una macro, podemos incluir varias acciones y definir condiciones de comprobación de tal como que se lleven a cabo diferentes acciones dependiendo de los valores de los formularios o informes. La creación de macros para que los usuarios lleven a cabo varias órdenes del menú pulsando un botón, garantiza que las tareas se realicen del mismo modo. Creación de una macro Desde la ventana de la base de datos, accederemos al apartado macros y desde esta zona, pulsaremos el botón Nuevo, al hacerlo, Access, nos mostrará la ventana de creación de macros. Figura 11.1. Ventana de macros - 78 - www.professionalscat.net [email protected] @profesionalscat Esta ventana se divide principalmente en dos apartados, las acciones configuradas que será la parte superior y los argumentos de la acción, que los encontraremos en la parte inferior de la ventana y que mostrará unas u otras opciones dependiendo de la macro que escojamos. Para seleccionar una acción desplegaremos la flecha que hay en el apartado Acción y seleccionaremos la acción más adecuada para nuestro caso. Figura 11.2. Escoger una acción Imaginemos que seleccionamos la acción Abrir Formulario, a continuación en la parte inferior tendremos que indicarle qué formulario y como queremos abrirlo. Figura 11.3. Argumentos de la acción Podremos ir colocando tantas acciones como necesitemos que se efectúen cuando se realice un evento (por ejemplo un clic en algún botón) Guardar una macro Para guardar la macro podremos simplemente cerrarla y nos preguntará si queremos guardar los cambios realizados o bien pulsando el botón guardar de la barra de herramientas. - 79 - www.professionalscat.net [email protected] @profesionalscat Asignación de una macro Una vez hemos creado la macro, podremos asignársela a algún evento, estos existen en los formularios e informes y los asignaremos a través de las propiedades de los objetos de los mismos. Un ejemplo sería, en el momento de pulsar un botón en el formulario de clientes, queremos que nos muestre un informe de todos los clientes, para ello primero crearemos un macro para abrir el informe, que previamente también tendremos que haber creado. A continuación crearemos un botón en el formulario, situado, por ejemplo, en el pie del formulario. Figura 11.4. Botón para listar clientes Y le asignaremos la macro a través del evento Al hacer clic del botón, para ello entramos a las propiedades del botón y nos situamos en la pestaña Eventos, hacemos un clic en el evento mencionado y desde el desplegable, escogemos la macro que previamente habíamos creado, si no lo hubiéramos hecho, siempre podremos crearlo en ese momento desde el botón con los tres puntitos Figura 11.5. Asignación de la macro al evento Al hacer clic - 80 - www.professionalscat.net [email protected] @profesionalscat Conversión de las macros a Visual Basic Si habíamos creado alguna macro y con posterioridad pensamos que sería conveniente ejecutar las acciones de nuestra base de datos a través de la programación, utilizando Visual Basic para Aplicaciones, podremos convertir nuestras macros a código VBA, sin muchas dificultades. Imaginemos que hemos creado la macro del ejemplo anterior y la queremos pasar a código, abriremos el formulario o informe donde se encuentren asignadas las macros e iremos al menú Herramientas – Macro – Convertir macros del formulario a Visual Basic. Al hacerlo, Access convertirá la macro a código y la asignará al mismo evento como Procedimiento de Evento, sólo nos quedará deshacernos de la macro, borrándola. Figura 11.6. Ventana de Visual Basic para aplicaciones – Macro convertida También podríamos convertirla directamente desde la ventana de la base de datos en la zona de las macros, seleccionaríamos la macro que nos interesa convertir y a continuación Herramientas – Macro – Convertir macros a Visual Basic, nos creará un módulo nuevo con la macro convertida. Figura 11.7. Módulo de macro convertida - 81 - www.professionalscat.net [email protected] @profesionalscat 12. MÓDULOS Los módulos, más potentes que las macros, son programas de Microsoft Visual Basic para Aplicaciones (VBA). VBA es un lenguaje de programación de alto nivel desarrollado por Microsoft cuya finalidad es la de crear un conjunto común de instrucciones VBA, además de su propio conjunto. Mientras las macros permiten automatizar cuatro o cinco docenas de acciones, VBA incluye cientos de órdenes. Este número puede ser aplicado de manera indefinida con otros muchos complementos. Utilizaremos VBA para llevar a cabo tareas que son demasiado complejas como para ser tratadas con macros, como la apertura de una hoja de cálculo de Excel y recuperación de cierta información. Todos el código escrito en Visual Basic de la base de datos se almacenará en módulos. Access proporciona dos formas de crear módulos: como un objeto módulo o como parte de un objeto formulario o informe. Objetos de módulo Los objetos de módulo de una base de datos son visualizados al pulsar el botón módulos de la ventana de la base de datos. Sería necesario utilizar este tipo de objeto para definir los procedimientos que serán utilizados desde varios formularios o informes de la aplicación. Serían los llamados procedimientos públicos que pueden ser llamados desde cualquier parte de la aplicación. Para crear un nuevo módulo desde esta zona, pulsaremos el botón Nuevo situado sobre la lista de módulos, en la ventana de la base de datos. Módulos de formulario e informe Para facilitar la creación de procedimientos en Visual Basic que respondan a eventos en formularios e informes, Access proporciona un módulo asociado con cada formulario e informe. Dentro de un módulo de este tipo, podemos crear procedimientos de evento privados para responder a eventos, que sólo pueden ser llamados desde dentro del formulario o informe donde se encuentran situados. La ventana del editor de Visual Basic Cuando abrimos un módulo en vista Diseño, Access abre el editor de Visual Basic y solicita al editor la visualización del código. - 82 - www.professionalscat.net [email protected] @profesionalscat Figura 12.1. Ventana Editor de Visual Basic Variables y constantes Además de poder utilizar código Visual Basic para trabajar con los controles de cualquier formulario o informe abierto, podemos declarar y utilizar las variables situadas en nuestro código para almacenar valores de forma temporal, calcular un resultado, o tratar cualquiera de los objetos de nuestra base de datos. De este modo, en lugar de definir controles “ocultos” en los formularios para mantener los datos que deseamos pasar de una rutina a otra, podemos definir una variable global para que guarde ese valor. La diferencia entre una variable y una constante es que esta última tiene un valor fijo que no puede ser alterado mientras la aplicación está siendo ejecutada. - 83 - www.professionalscat.net [email protected] @profesionalscat Ámbito de una constante y de una variable El alcance de una variable o de una constante determina si la variable o constante será conocida sólo por un procedimiento, por todos los procedimientos de un módulo o por todos los procedimientos de la base de datos. Se pueden crear variables o constantes que pueden ser utilizadas por cualquier procedimiento de la base de datos (alcance global). Además podemos crear variables o constantes que solamente se apliquen a los procedimientos de un módulo o a un único procedimiento (alcance local) Figura 12.2. Variable de procedimiento La variable creada en la figura anterior será visible desde cualquier procedimiento del objeto donde se ubica, en este caso FO_Albaranes, dado que se encuentra en la parte superior fuera de cualquier subrutina privada. Figura 12.3. Variable local Las variables creadas en la figura anterior, Numero y varCuentaReg, solo serán leídas desde la rutina donde se encuentran, en este caso la rutina Form_Current (Variables locales) - 84 - www.professionalscat.net [email protected] @profesionalscat Figura 12.4. Variables globales La de la figura anterior, como está definida en un módulo como variable pública, podrá ser leida desde cualquier procedimiento de la base de datos. - 85 - www.professionalscat.net [email protected] @profesionalscat BIBLIOGRAFÍA: - Ayuda de Microsoft Access 2003 - Running Microsoft Access 2000 – Guía Completa. Autor: John Viescas. Editorial: McGraw Hill - Paso a Paso – Access 2003 – Editorial: McGraw Hill - 86 -