Documentos de Académico
Documentos de Profesional
Documentos de Cultura
------------------------------------------------------------------------------------
ndice
Introduccin ................................................................................................................................... 7 Access es un Sistema Gestor de Base de Datos (SGBD) ........................................................ 9 Concepto de tablas, campos y registros ................................................................................. 10 Tipos de datos y su aplicacin................................................................................................. 10 Campo clave ............................................................................................................................ 11 Estructura de un fichero Access .............................................................................................. 12 Diseo del proyecto de Base de Datos ....................................................................................... 13 Mi primera base de datos ........................................................................................................ 15 Ventana de Localidad.mdb .................................................................................................. 16 Breve descripcin de cada uno de los objetos .................................................................... 17 Crear la tabla Localidad ....................................................................................................... 18 Establecer la clave principal................................................................................................. 19 Guardar la tabla ................................................................................................................... 19 Estudio previo de la informacin a introducir........................................................................... 19 Tablas y campos necesarios................................................................................................ 20 Tipo de relaciones................................................................................................................ 20 Relacin entre la tabla Localidad y la tabla Funcionario ..................................................... 22 Relacin entre la tabla Funcionario y la tabla Curso ........................................................... 22 Resumen de nuestro supuesto ............................................................................................ 22 Vincular tablas de otra base de datos.................................................................................. 23 Crear la tabla Funcionario.................................................................................................... 24 Relacionar las tablas Funcionario y Localidad..................................................................... 25 Integridad referencial ........................................................................................................... 28 Ejercicios.................................................................................................................................. 30 Consultas..................................................................................................................................... 32
3
Introduccin ............................................................................................................................. 34 Tipos de consultas................................................................................................................... 34 Creacin de mi primera consulta ............................................................................................. 34 Consulta en ms de una tabla ................................................................................................. 37 Crea un campo calculado con una consulta............................................................................ 39 Formularios.................................................................................................................................. 42 Introduccin ............................................................................................................................. 44 Cmo se construyen?............................................................................................................ 44 Los controles............................................................................................................................ 45 Formas de crear formularios.................................................................................................... 46 Nombre que se le van a dar a los formularios......................................................................... 46 Creacin de formularios mediante el asistente ....................................................................... 47 El formulario GestionSolicitud.................................................................................................. 47 El formulario Solicitud .............................................................................................................. 51 Agregar un campo a un formulario ...................................................................................... 52 Orden de tabulacin............................................................................................................. 53 Establecer controles como de slo lectura .......................................................................... 53 Evitar aprender cdigos ....................................................................................................... 54 Propiedades de un formulario .............................................................................................. 58 Hacer referencia a los controles de un formulario o informe................................................... 59 Exportar registros utilizando el Filtro por formulario ................................................................ 60 Ejercicios.................................................................................................................................. 63 Subformularios ............................................................................................................................ 65 Introduccin ............................................................................................................................. 67 Repaso de lo hecho hasta ahora............................................................................................. 67 Crear formulario y subformulario al mismo tiempo.................................................................. 68 Crear subformularios basado en consultas ............................................................................. 70 Consulta del formulario principal: ConFuncionario.................................................................. 70 Consulta del subformulario: ConSubCurso ............................................................................. 71 El formulario principal Funcionario .......................................................................................... 72
El subformulario SubCurso...................................................................................................... 73 Insertar el subformulario en el formulario principal.................................................................. 75 Funcin de nuestros formularios en el proyecto...................................................................... 76 Ejercicios.................................................................................................................................. 79 Macros......................................................................................................................................... 81 Introduccin ............................................................................................................................. 83 Crear botones en Funcionario.............................................................................................. 83 Crear un macro........................................................................................................................ 85 Grupo de macros ..................................................................................................................... 86 El grupo Funcionario................................................................................................................ 86 Macro Aadir ........................................................................................................................ 87 Macro Modificar.................................................................................................................... 87 Macro Buscar ....................................................................................................................... 88 Resumen .............................................................................................................................. 90 El grupo Curso ......................................................................................................................... 90 El grupo Solicitud..................................................................................................................... 90 Macro Exportar..................................................................................................................... 91 Macro Imprimir ..................................................................................................................... 92 Resumen .............................................................................................................................. 94 El grupo Comun ....................................................................................................................... 94 Macro Funcionario ............................................................................................................... 94 Macro Curso......................................................................................................................... 94 Macro Solicitud..................................................................................................................... 95 Macro Aceptar...................................................................................................................... 95 Formulario Curso ..................................................................................................................... 97 Formulario Funcionario............................................................................................................ 98 Formulario Solicitud ................................................................................................................. 99 Formulario GestionCurso....................................................................................................... 100 Formulario GestionFuncionario ............................................................................................. 101 Formulario GestionSolicitud................................................................................................... 102
Formulario SubCurso............................................................................................................. 103 Formulario SubFuncionario ................................................................................................... 104 ANEXO DE LAS ACCIONES MS UTILIZADAS.................................................................. 105 Ejercicios................................................................................................................................ 107 INFORMES................................................................................................................................ 109 Introduccin ........................................................................................................................... 111 Formas de crear un informe .................................................................................................. 111 Crear informe con ayuda del asistente.................................................................................. 111 Elementos de un informe....................................................................................................... 114 Secciones principales ........................................................................................................ 114 Opciones en un informe ..................................................................................................... 115 Agregar campos u otros controles a un informe existente .................................................... 115 Agregar campos a un informe existente ............................................................................ 115 Agregar o modificar el agrupamiento y la ordenacin ........................................................... 116 El informe Listado Cursos...................................................................................................... 116 Filtrado de datos en un informe ............................................................................................. 118 El informe Listado funcionarios ............................................................................................. 120 Forzar nueva pgina en cada encabezado de grupo ........................................................ 121 Filtrar los datos del informe desde el formulario Solicitud ................................................. 122 Creacin de etiquetas postales ............................................................................................. 122 Creacin de un formulario desde el panel Impresoras y faxes.......................................... 123 Acuses de recibo para impresoras matriciales .................................................................. 123 Acuses de recibo para impresoras lser............................................................................ 126
Introduccin
Microsoft Access es un programa para la gestin de informacin que disea las estructuras para almacenar la informacin y los medios para su introduccin y explotacin. Para explicar este propsito general de Access, se introducen primero los conceptos principales de las bases de datos, comenzando por el mismo concepto de base de datos. Se comienza con el concepto de base de datos compuesta de tablas con estructura plana (todos los datos se encuentran en una tabla y son ms difciles de gestionar) para pasar a disear bases de datos compuestas de varias tablas entre las que existe una relacin (estructura relacional). La versin de Access que se va a presentar es la 2003 para Windows y el alumno, al finalizar el curso, ser capaz de realizar aplicaciones de bases de datos que relacionen varias tablas, generando formularios e informes enlazados mediante macros para, as, generar una interfaz de usuario sencilla y completa. A la vez que se da la teora iremos creando una aplicacin que al final sea capaz de gestionar las solicitudes de los Cursos de Formacin. El curso est dirigido a todos los trabajadores de la Direccin Provincial del INSS TGSS que, conociendo el Gestor de Base de Datos Microsoft Access a partir de ahora Access- desea profundizar en el programa hasta un nivel ms alto.
Si se hubiese utilizado slo una tabla, al aadir los registros hubiera sido necesario introducir varias veces el nombre y apellido de la persona que lo ha solicitado, almacenndose informacin redundante, pudiendo cometerse errores como se muestra en la siguiente tabla.
9
Nombre y apellidos) y 1 registro. Curso: Contiene informacin sobre los cursos, consta de 3 campos (Cdigo curso,
nombre curso y DNI) y 3 registros. Por tanto, una base de datos contiene tablas que se utilizan para gestionar un determinado tipo de informacin. Ejemplos de base de datos son: Base de datos para la gestin de los cursos de nuestra Direccin Provincial. Base de datos que gestionan los ingresos en un hospital. Base de datos que gestionan los pedidos de una empresa.
Memo
que se aade un registro a una tabla. Booleano (S/No) Objeto OLE Hipervnculo Asistente para bsquedas Slo dos valores: S o No. Objeto (como documento Word, imgenes) vinculado o incrustado en una tabla. Direccin de pgina web, de correo electrnico o de un archivo en el disco local. Crea un campo que permite elegir un valor de otra tabla o de una lista de valores mediante un cuadro de lista o cuadro combinado. 1 bit Hasta 1Gb 2048 caracteres Igual al campo utilizado para realizar la bsqueda
El campo por omisin es de tipo Texto, ya que en l se puede almacenar cualquier carcter. Si lo que queremos es almacenar bastante texto, debemos elegir el campo tipo Memo. Por otro lado, cuando vayamos a introducir datos de tipo numrico elegiremos entre Numrico o Texto, dependiendo si deseamos realizar operaciones matemticas con ellos o no, respectivamente. El campo Autonumrico lo podemos utilizar para numerar los registros automticamente segn los vamos introduciendo en la tabla. Cuando el campo slo pueda contener una afirmacin o una negacin usaremos el tipo S/No tipo de datos booleano. Por ltimo, tenemos los campos Fecha/hora que sirven para introducir fechas y horas en diferentes formatos; el campo Moneda que utiliza un mximo de 4 decimales y aade el tipo de moneda especificada, y el campo ObjetoOLE que nos puede servir para insertar cualquier objeto OLE compatible en Windows, como puede ser una hoja de clculo, una carta, una imagen, un grfico, etc.
Se recomienda especificar el valor ms pequeo posible en la propiedad Tamao del campo, pues los tamaos ms pequeos pueden procesarse ms rpidamente y requieren menos memoria.
Precaucin: Si cambia un valor de Tamao del campo grande por otro ms pequeo
para un campo que ya contiene datos, es posible que pierda informacin. Por ejemplo, si un campo de tipo Texto tiene el valor 255 en Tamao del campo y lo cambia por 50, los datos que se extiendan ms all de los 50 primeros caracteres se perdern. Si los datos de un campo de tipo Numrico no caben con un nuevo valor de Tamao del campo, los nmeros fraccionarios se pueden redondear, o pueden dar el valor Nulo. Por ejemplo, si cambia el tamao de campo de Simple a Entero, los valores fraccionarios se redondearn al nmero entero ms cercano, y los superiores a 32.767 o inferiores a -32.768 sern reemplazados por valores nulos. No es posible deshacer los cambios en los datos provocados por una modificacin de la propiedad Tamao del campo despus de haberlos guardado en la vista Diseo de la tabla.
Campo clave
En cada una de las tablas de una base de datos relacional debemos de tener al menos un campo o varios cuyo valor sea nico e identifique unvocamente a cada registro de la tabla. Por ejemplo, en nuestro caso de la gestin de los cursos, las tablas funcionario y curso tienen un campo clave (DNI y Cdigo curso respectivamente).
11
En el caso de que no podamos encontrar un campo clave se aade a la tabla un campo de tipo Autonumrico o bien podemos elegir varios campos como la clave de la tabla.
12
13
A partir de aqu vamos a ir desarrollando la teora con un ejercicio prctico Mi proyecto- que consistir en disear una base de datos que sea capaz de gestionar las solicitudes de los Cursos de Formacin de la Direccin Provincial. Empezaremos creando nuestra primera tabla Localidad- para almacenar el cdigo postal y el pueblo del funcionario que presenta la solicitud. Veremos los distintos tipos de objetos que aparecen en una base de datos y otros conceptos bsicos como clave principal, clave ajena e integridad referencial e insistiremos en lo importante que es un buen diseo de una base de datos y el establecimiento de las relaciones entre las diferentes tablas que componen nuestro proyecto de Base de Datos. Al final de cada tema se propone unos ejercicios para evaluar si se ha comprendido todos estos conceptos.
En el cuadro de dilogo que aparece se elige la ubicacin exacta del archivo que se va a crear y el nombre que va a recibir (en nuestro caso Localidad.mdb). Si bien Access otorga por defecto el nombre bd1.mdb y lo ubica en la carpeta Mis Documentos. Finalizar haciendo clic en Crear.
15
Ventana de Localidad.mdb
La ventana de la base de datos Localidad.mdb que acabamos de crear es la que se muestra en la figura siguiente:
y presenta los siguientes elementos: Barra de ttulos: En la parte superior de la ventana. Muestra el nombre de la base de
datos en la que se est trabajando junto con los botones Minimizar, Restaurar-Maximizar y Cerrar.
Barra de botones: Situada debajo de la barra de ttulos, permite crear nuevos objetos
16
diferentes objetos que puede tener una base de datos. Para ir de una a otra hacemos clic en el nombre del objeto.
todos los objetos que han sido creados en nuestro caso ninguno ya que todava la base de datos est vaca- y los asistentes para crearlos.
estructurada en registros y campos. Consultas: Permite realizar una operacin sobre la base de datos para seleccionar,
modificar, insertar borrar registros segn un criterio. Las consultas se pueden realizar sobre una o varias tablas. Formularios: Es una ventana diseada para la introduccin y edicin de datos de una
o varias tablas. Permite introducir, modificar, consultar y borrar los registros de la tabla o consulta para la que se ha diseado. La ventaja frente a la presentacin como hoja de datos es que los campos se presentan de forma ms adecuada al usuario, con un diseo que ayuda a su comprensin, utilizando los controles ms adecuados a cada tipo de informacin. Informes: Si el formulario es idneo para introducir y editar los datos, la mejor forma de
mostrarlos es mediante un informa en una pgina impresa o su presentacin en la pantalla del ordenador. Access proporciona herramientas para disear informes con gran flexibilidad y posee funciones para agrupar registros y mostrar totales y subtotales de los campos deseados. Macros: Son conjunto de acciones que realizan una operacin determinada, como
abrir un formulario o imprimir un informe. Las macros pueden ayudar a automatizar las tareas comunes, como imprimir un informe cuando el usuario pulsa un botn.
17
el curso ya que est dirigido a los programadores. Pginas: Para crear pginas Web que se puedan utilizar para ver, agregar, modificar o
borrar datos actuales de una base de datos de Access. Igual que los formularios pero a travs de navegadores de Internet. Orientado a programadores para presentar los formularios va Internet o Intranet.
De ellas, elegiremos Vista Diseo que ser el mtodo que utilizaremos. Otra forma de crearla sera haciendo clic sobre el icono . Aparecer la ventana Diseo de tabla desde la que
se teclea el nombre de los campos, se selecciona el tipo de datos del campo y opcionalmentese indica una descripcin para cada campo:
18
En la parte inferior de cada campo tenemos la ficha General para definir propiedades del campo como por ejemplo: Cdigo Tamao del campo 1 Formato 2 Ttulo 3 Lugares decimales Requerido 4 Indexado 5 Entero 00000 Cdigo del pueblo 0 S S (Sin duplicados) Entero 00000 Cdigo Postal 0 S Si (Con duplicados) S No Localidad CP 30 Nombre
campo aparecer una llave indicndonos que dicho campo es clave principal de la tabla.
Guardar la tabla
Por ltimo, se guarda la tabla haciendo clic sobre el icono en nuestro ejemplo, Localidad.
Nota: Si no hubiramos asignado clave principal a la tabla, al salir del modo diseo aparecera un cuadro de dilogo avisndonos de ello y preguntndonos si queremos que Access cree una. Si decimos que S, se aade un campo Autonumrico a la tabla y lo define como clave principal, si decimos No se guarda la tabla sin clave principal.
Depende del tipo de dato: Texto: Puede tomar valores entre 0 y 255. Numrico: Entero, por lo que almacena nmeros del -32768 al 32767.
2 3 4 5
Para personalizar la forma en que los nmeros, fechas, horas y texto se muestran e imprimen. La etiqueta para el campo cuando se utiliza para un formulario. Hacer obligatoria o no la entrada de datos en el campo. Un ndice para acelerar las bsquedas y ordenamientos en un campo.
19
Lo primero que debemos hacer es determinar la finalidad de la base de datos y las tablas que va a contener. En segundo lugar, debemos distribuir toda la informacin por campos, de forma que cada campo corresponda a una tabla y que la informacin no se encuentre duplicada ni dentro de una tabla ni en tablas diferentes. Por ltimo, determinaremos las relaciones entre las diferentes tablas. Cada uno de estos pasos lo vamos a hacer partiendo de un supuesto bsico: Una base de datos que gestiona los cursos de formacin de la Direccin Provincial:
Tipo de relaciones
Las relaciones entre tablas se hacen a travs de sus claves principales. La clave principal de la tabla Funcionario es el DNI y de la tabla Curso el Cdigo por ser los campos que identifican a cada uno de los registros. Las relaciones posibles entre tablas pueden ser: Uno a uno: Cada registro de una de las tablas est relacionado con uno y slo un
registro de la otra tabla. Un ejemplo sera la relacin entre la tabla Seccin y la tabla Jefe, ya que en una seccin slo puede haber un jefe y cada jefe slo puede serlo de una seccin.
20
Uno a varios: Cada registro de una de las tablas est relacionado con uno o varios
registros de la otra tabla. Un ejemplo sera la relacin entre la tabla Funcionario y la tabla Localidad, donde en una localidad pueden vivir uno o ms funcionarios y un funcionario slo puede vivir en slo una localidad.
Varios a varios: Cada registro de una tabla est relacionado con uno o ms de la otra
21
Por tanto, nuestro ejemplo corresponde a una relacin de varios a varios. Vamos a ver que hay que hacer con las claves de las tablas en cada uno de los tipos de relaciones:
22
1 2 3 4 5 6
Clave principal de la tabla Localidad Clave principal de la tabla Funcionario Clave ajena de la tabla Funcionario Clave ajena de la tabla Solicitud Clave ajena de la tabla Solicitud Clave principal de la tabla Curso
La clave principal de la tabla Solicitud sera la combinacin de los campos DNI, CodigoCurso y FechaCurso. As que tendremos que crear 4 tablas con sus respectivos campos cada una, indicando de qu tipo son. Como ya hemos creado la tabla Localidad en la base de datos Localidad.mdb -que posiblemente la utilizaremos en otras bases de datos que tengamos o vayamos a crear-, en vez de crear en nuestro proyecto nuevamente la tabla Localidad optaremos por vincular la que ya tenemos a nuestra base de datos.
23
Ahora podremos ver que la tabla Localidad est vinculada a nuestra base de datos ya que aparece con un signo en forma de flecha:
24
Vamos a comentar algunas propiedades de estos campos: DNI Tamao del campo: Entero largo, ya que el DNI no contiene decimales y tiene un tamao suficiente para almacenar los DNIs. Formato: 00000000, para que cuando se introduzca un DNI de 7 o menos cifras se rellene a la izquierda con ceros. Lugares decimales: 0, ya que no contiene decimales. Indexado: Sin, sin duplicados. Para acelerar las bsquedas por este campo y no duplicar valores. Nombre Primer apellido Segundo apellido Tamao del campo: Con 15 caracteres tenemos suficiente para los nombres de los funcionarios. Requerido: S, para hacer obligatoria la entrada de datos en estos campos. Permitir longitud cero: No, para no permitir cadenas de longitud cero en los campos. Indexado: S, si quieres acelerar las bsquedas u ordenacin por estos campos, en caso contrario No. Domicilio Tamao del campo: Con 35 caracteres tenemos suficiente para el domicilio. Siempre habr tiempo para aumentar el tamao cuando queramos. Requerido: S, para hacer obligatoria la entrada de datos en ese campo. Sueldo Formato: Euro. Lugares decimales: 2, ya que el euro contiene 2 decimales. CodigoPueblo Tamao del campo: Con Entero tenemos una longitud suficiente para introducir los posibles valores de este campo. Formato: 00000, para completar con 0 a la izquierda el nmero que se introduzca. Lugares decimales: 0, ya que es un nmero entero por lo que no contiene decimales. Requerido: S, para hacer obligatoria la introduccin de datos en este campo.
Relaciones en la barra de mens. Como an no se ha definido ninguna relacin, se mostrar automticamente el cuadro de dilogo Mostrar tabla:
25
Hacer doble clic en las tablas que vamos a relacionar -Funcionario y Localidad- y cerrar el cuadro de dilogo Mostrar tabla. Aparecern las dos tablas en el cuadro de Relaciones, donde podemos observar los diferentes campos de las tablas. Los campos clave de cada tabla vienen en negrita.
Arrastrar el campo que deseamos relacionar de una de las tablas al campo relacionado de la otra. Como vimos anteriormente, los campos a relacionar son Localidad.Codigo y Funcionario.CodigoPueblo que son la clave principal de la tabla Localidad y la clave ajena de la tabla Funcionario. En el cuadro de dilogo Modificar relaciones hay que comprobar que los campos mostrados en las dos columnas son correctos y pulsar Crear.
26
Nota: Las relaciones entre Funcionario-Solicitud y Solicitud-Curso se proponen como ejercicio. Quedaran as:
27
Integridad referencial
La integridad referencial es un conjunto de reglas de Access que garantizan que las relaciones entre los registros de tablas relacionadas son vlidas y que no se eliminan ni modifican accidentalmente datos relacionados que satisfacen dicha relacin. Sirve para aumentar la seguridad en el tratamiento de los datos que coexisten entre dos tablas relacionadas. Se puede establecer integridad referencial cuando: El campo que relaciona ambas tablas tiene que ser en la tabla principal un campo
clave (indexado si y sin duplicados) y en la otra tabla clave ajena, tambin indexado (con o sin duplicados segn proceda). Ejemplo: En la relacin entre las tablas Funcionario y Solicitud, el campo que las relaciona DNI- es clave principal en la tabla Funcionario y clave ajena en la tabla Solicitud. Los campos relacionados tienen el mismo tipo de datos, a excepcin de que la
relacin se establezca entre un campo de tipo Autonumrico y un campo de tipo Numrico, siempre y cuando este ltimo sea un Entero largo (por lo tanto los dos campos con la misma longitud: entero largo). No se pueden relacionar un campo de texto con uno de fecha, uno numrico con uno de texto... Ambas tablas deben pertenecer a la misma base de datos de Access (estar dentro del
mismo archivo mdb). Por lo tanto, no podr establecerse integridad referencial entre la tabla Funcionario y la tabla vinculada Localidad ya que pertenecen a distintas bases de datos. Cuando se establece la integridad referencial entre dos tablas, se van a cumplir las siguientes reglas: No podemos introducir un valor para el campo que es clave ajena en la tabla
relacionada si antes no ha sido introducido en el campo que es clave principal de la tabla principal. Por tanto, no podemos tener solicitudes cuyo DNI no est mecanizado en la tabla Funcionario. No se puede eliminar un registro de la tabla principal Funcionario- si existen registros
coincidentes en la tabla relacionada Solicitud-, salvo que se active la casilla Eliminar en cascada los registros relacionados en la ventana Modificar relaciones. Esta opcin es muy arriesgada ya que una vez que Access borra un registro ya no puede volverse a recuperar si no es desde una copia de seguridad.
si tiene registros relacionados en la otra tabla Solicitud-, salvo que se active la casilla
28
29
Ejercicios
Crear la base de datos Cursos de formacin con las tablas Funcionario, Solicitud y Curso. Vincular la tabla Localidad de la base de datos Localidad.mdb. Puede haber integridad referencial entre la tabla Localidad y la tabla Funcionario.? Relacionar las tablas Funcionario-Solicitud y Solicitud-Curso. Para probar que las relaciones estn bien hechas, introducir dos o tres registros en cada una de las tablas siguiendo este orden: o o o Aadir datos algunos funcionarios. Aadir distintos tipos de cursos. Aadir unas cuantas solicitudes de funcionarios que ya estn mecanizados.
30
31
Consultas
32
33
Introduccin
El objeto Consulta de Access nos permite visualizar o imprimir una serie de registros de una o varias tablas que cumplen unas determinadas condiciones y elegir los campos a visualizar. Los datos se almacenan en las tablas y no en las consultas por lo que las modificaciones tendrn efecto sobre las tablas origen de la consulta. Podemos utilizar una consulta para proporcionar datos a un formulario o informe y presentar slo los registros que se han obtenido.
Tipos de consultas
Consultas de seleccin: Es la ms habitual y sencilla. Con este tipo de consulta
podemos: o Obtener los datos de una o ms tablas y mostrarlos en una hoja de datos en la que poder actualizar los registros. o Calcular datos a partir de los registros de la tabla: Campos calculados (para cada registro) y campos resumen (para un conjunto de registros: total, sumas, promedios, etc.) Consultas de accin: Realiza operaciones con los datos de una tabla (eliminar, o
actualizar una serie de registros, crear tablas con los datos de otras, importar datos de tablas a otra datos anexados. Consulta de tablas de referencias cruzadas: Para resumir los datos de una o varias
34
Cmo visualizar todas las solicitudes que han sido aceptadas utilizando un objeto consulta?... Sigamos estos pasos: Nos situamos en la ventana del objeto Consultas de Access y pulsamos en el icono Nuevo.
En Tablas/Consultas elegimos la tabla Solicitud y seleccionamos los campos que queremos visualizar (DNI, CodigoCurso, Fecha Curso y Aceptado.) Clic en Siguiente.
La consulta es de detalle ya que se va a presentar todos los registros de la tabla Solicitud que hayan sido aceptadas y no resmenes de los mismos. Dejamos la opcin por defecto que presenta Access. Clic en Siguiente.
35
Damos un nombre a la consulta Solicitudes aceptadas- y pulsamos Finalizar. Elegimos la opcin Modificar el diseo de consulta- para que se abra la consulta en modo diseo desde donde podremos modificarla y aadir las condiciones que debe cumplir.
La ventana de diseo de consultas tiene dos reas: La superior -donde aparecen las tablas que participan en la consulta- y la inferior rejilla que presenta los campos aadidos a la consulta y donde se especifican los criterios que tiene que cumplir. En nuestro caso, establecer como criterio en el campo Aceptada el valor S, ya que queremos visualizar slo las solicitudes aceptadas.
36
Para ejecutar la consulta hay que seleccionarla y pulsar el botn Abrir. El resultado ser similar a ste:
Que nos presenta, en una hoja de datos, los registros que cumplen los criterios establecidos en la consulta.
Borramos la consulta anterior y seguimos los mismos pasos anteriores. La nica diferencia es que tenemos que elegir la tabla a la que pertenecen los campos que vamos a aadir.
Para diferenciar los campos con el mismo nombre pero de distintas tablas, Access antepone al campo el nombre de la tabla a la que pertenece (Funcionario.Nombre y Curso.Nombre) Le damos el mismo nombre que a la anterior Solicitudes aceptadas- Si se ha seguido correctamente los pasos, la consulta quedara as:
37
En la zona superior aparecen las tablas que participan en la consulta con sus relaciones y en la inferior los campos a visualizar. Con ayuda del ratn, podemos modificar la posicin de las tablas para ver mejor la relacin entre las mismas. Asimismo, introducimos el criterio de la consulta.
En la que, ahora s, podemos saber el nombre y apellidos as como el curso de las solicitudes que han sido aceptadas. Podramos seguir aadiendo criterios, como: Criterio Obtener solicitudes de un ao en concreto Obtener solicitudes del ao actual Obtener solicitudes del mes actual Obtener solicitudes presentadas en un intervalo de fechas. Frmula Ao([FechaEntrada])=2007 Ao([FechaEntrada])=Ao(Ahora()) Ao([FechaEntrada])=Ao(Ahora()) Y Mes([FechaEntrada])=Mes(Ahora()) >#01/01/2007# Y <#30/06/2007#
38
Aadimos las tablas que necesitamos para la consulta (Funcionario, Solicitud y Curso) eligindola y pulsando Aceptar.
Aadimos los campos desde las tablas a la rejilla y establecemos el criterio S al campo Aceptada.
Definimos el campo calculado (Apellidos y Nombre) como el resultado de la combinacin de los campos Primerapellido, Segundoapellido y Nombre de la tabla Funcionario, separados por sus respectivos espacios y coma: Nombre y Apellidos: [Funcionario.Primerapellido] + " " + [Funcionario.Segundoapellido] + ", " + [Funcionario.Nombre]
Nota: Cada campo va precedido de la tabla al que pertenece separado por un punto.
39
Vamos a utilizar el generador de expresiones para crear la frmula del campo calculado: Nos situamos en la celda donde vamos a generar el campo calculado. Botn derecho Generar.
En el generador de expresiones se escribe el nombre del campo calculado seguido de dos puntos y el signo igual.
El primer campo de la frmula es Funcionario.Nombre. Para elegirlo nos situamos en la tabla Funcionario, elegimos el campo Nombre y hacemos clic en Pegar para aadirlo a la frmula.
40
Aadir el espacio en blanco que viene despus del nombre haciendo clic en el smbolo + del generador de expresiones y escribir . Idem para los espacios siguientes. Para aadir las campos Primerapellido y Segundoapellido se acta de forma similar a cuando aadimos el campo Nombre. Finalizar pulsando el botn Aceptar. Al final la frmula quedara as:
41
Formularios
42
43
Introduccin
Los formularios son la parte de la aplicacin que va a estar a disposicin de los usuarios, constituyendo el ncleo de la interfaz aplicacin-usuario. Por eso es necesario tener un especial cuidado en su diseo y construccin. Los usuarios que manejen los formularios deben encontrarlos sencillos y eficientes. Aunque es posible utilizar las hojas de datos de tablas y consultas para realizar muchas de las funciones de los formularios, stos tienen la ventaja de presentar la informacin de forma clara y ordenada. Un formulario convenientemente diseado acelera la introduccin de datos y minimiza los errores de los usuarios. Los formularios son el tipo de objeto ms potente que incorpora Access para visualizar y editar los datos de una tabla o consulta. Permiten mostrar los datos en un formato personalizado que el usuario podr disear segn sus necesidades.
Nota: Los formularios pueden estar basados en tablas o en consultas. Son ms eficientes los diseados a travs de consultas.
Cmo se construyen?
Los formularios se construyen partiendo de un conjunto de elementos de diseo independientes denominados controles u objetos de tipo control. Los controles son los componentes habituales de las ventanas y dilogos de Access y otras aplicaciones Windows.
Un formulario consiste en una ventana en la que se sitan varios tipos de controles: los que muestran los datos de las tablas y los que muestran datos estticos como etiquetas o logotipos, los que permiten generar acciones, tales como botones que abren otros formularios o imprimen informes, etc. Los formularios Access son verstiles: permiten realizar tareas que no son posibles en las hojas de datos Tabla o Consulta. Es posible validar las entradas en base a informacin contenida en otras tablas distintas a la editada. Se pueden crear formularios que incorporen otros formularios (subformularios). Adems, desde un formulario, es posible realizar clculos y mostrar totales.
44
Los controles
Son los objetos que utilizamos para crear los formularios e informes y distribuyen la informacin en la pantalla. Etiqueta : Presenta un texto descriptivo que ayuda al usuario a entender lo que
representan otros controles, como cuadros de texto o cuadro combinado. Cuadro de texto o :
Dependientes: Se utiliza para presentar, modificar o introducir los registros de las tablas (cuadro de texto dependiente).
Independientes: Se utiliza para presentar los resultados de un clculo o para aceptar la entrada de datos de un usuario. No se almacenan en las tablas sino en la memoria del ordenador.
Grupo de opciones
opcin o botones de alternar para presentar un conjunto limitado de alternativas que hace que el usuario slo tenga que hacer clic en el valor que desee slo se puede seleccionar una opcin del grupo a la vez. Las opciones deben de ser pocas, en caso contrario es mas aconsejable utilizar un cuadro de lista o cuadro combinado. Botn alternar, botn de opcin y casilla de verificacin : Se utilizan
para aadir una nueva opcin a un grupo de opciones ya creado o para presentar un campo booleano (S/No) si el botn o casilla aparece marcado el valor del campo es S. Cuadro combinado : Se utiliza para seleccionar un valor de una lista, que puede
contener datos de una tabla o valores que hayamos aadido al crearlo. Tambin asegura que la informacin que se ha introducido en el campo es correcta. Puede tener una o ms columnas. Cuadro de lista : Idem que el cuadro combinado a diferencia que los valores
aparecen desplegados en todo momento. Botn de comando : Permite ejecutar una accin con un simple clic como abrir un
formulario, aadir un registro o ejecutar una macro. Imagen : Para insertar una imagen que no variar al cambiar de registro, como un
sonido, un documento Word, etc. No varan al cambiar de registro. Marco de objeto dependiente : Idem que el anterior pero que varan en cada
registro.
45
Salto de pgina
hora de imprimir. Control ficha : Sirve para presentar registros con muchos campos que no caben
en una sola pantalla y queremos organizarlos en varias fichas. Subformulario/Subinforme : Para insertar un subformulario o un subinforme.
Importante cuando se quiere representar una relacin uno a varios. Lnea : Para insertar una lnea. : Para insertar un rectngulo. .
Rectngulo
Controles ms complejos
Nota: Para aadir un control a un formulario hay que elegirlo del cuadro de herramientas y hacer clic en el lugar del formulario donde se quiere insertar.
en la consulta ConGestionFormulario. GestionCurso: Para aadir o modificar registros en la tabla Curso. Basado en la
consulta ConGestionCurso. GestionSolicitud: Para aadir o modifcar registros en la tabla Solicitud. Basado en la
consulta ConGestionSolicitud. Curso: Para visualizar los cursos. Contiene un subformulario que lista los funcionarios
que los han solicitado. Basado en la consulta ConCurso. Funcionario: Para visualizar los funcionarios. Contiene un subformulario que lista los
cursos que han solicitado. Basado en la consulta ConFuncionario. Solicitud: Para visualizar las solicitudes. Basado en la consulta ConSolicitud y desde
el que se podr exportar e imprimir los valores de los campos en un documento o plantilla de Microsoft Word.
46
consulta ConSubFuncionario.
Nota: Antes de crear un formulario, crearemos la consulta en la que se va a basar.
El formulario GestionSolicitud
Como todo formulario va a estar basado en una consulta, debemos de empezar por crearla y que llamaremos ConGestionSolicitud: Identificar qu campos vamos a utilizar en el formulario. Tabla Solicitud Campos Todos (en los formularios que se utilizan para aadir o modificar registros se aaden todos los campos de la tabla que se va a gestionar.) Funcionario Localidad Curso Nombre, Primer apellido, Segundo apellido y Domicilio. CP y Localidad Nombre
Una vez creada la consulta, vamos a crear nuestro primer formulario GestionSolicitudutilizando el asistente.
47
Nota: Si queremos que nuestra base de datos recoja informacin sobre el nmero de horas de cada curso se tendr que aadir otro campo (Horas) a la tabla Solicitud.
Una vez abierta la base de datos y situados en el objeto Formulario, los pasos a seguir son los siguientes: Pulsar el botn para abrir el asistente y seleccionar Asistente para
En Tabla/Consultas, seleccionar la consulta antes creada ConGestionSolicitud- y aadir todos los campos pulsando y Siguiente.
48
Damos el nombre de GestionSolicitud al formulario y activamos la opcin de Modificar el diseo del formulario para ir al modo diseo. Se termina pulsando Finalizar.
49
Quizs parezca algo difcil de entender lo que vemos en pantalla en el modo diseo del formulario, pero no es ms que el esquema. Bsicamente se compone de tres partes: Encabezado: Representa lo que aparece en la parte superior y se utiliza para insertar
texto o una imagen que proporcione informacin sobre lo que hace el formulario. Detalle: Zona donde aparecen los nombres de los campos dentro de unos recuadros.
Con hacer clic y arrastrar el ratn podrs moverlos a cualquier parte de la zona Detalle y modificar su posicin en la pantalla. Pie: Para mostrar informacin como el nmero de pgina o la fecha.
Para aumentar el tamao de la altura de cada una de estas partes hay que situar el puntero del ratn entre la lnea que las divide hasta que el curso del ratn aparezca como . Pulsar
botn izquierdo del ratn y desplazarlo hacia abajo o hacia arriba para darle para aumentra o disminuir la altura.
50
Por ltimo, vamos eligiendo los diferentes objetos del formulario y situndolos donde mejor veamos, as como aadiendo nuevos objetos.
El formulario Solicitud
Lo utilizaremos para visualizar las solicitudes presentadas. Tanto la creacin de la consulta ConSolicitud- como del formulario son similares a los anteriores. Slo vara el modo de presentacin y distribucin de los campos.
51
52
Slo hay que arrastrar uno de los campos que aparecen en la lista hasta el formulario o informe y Access crea automticamente el control apropiado para mostrar el campo, como cuadro de texto o cuadro combinado y despus enlaza el control a ese campo. El tipo de control creado depende de cual est seleccionado en el cuadro de herramientas.
Si el campo a aadir no est incluido en la lista de campos es porque no se aadi a la consulta. Para que aparezca, hay que editar la consulta ConGestionSolicitud- y aadirlo.
Orden de tabulacin
El orden de tabulacin define el orden en el que un usuario se mueve por los controles y, por defecto, es siempre el orden por el que se han aadido al crear la consulta. Para comprobar si es el correcto, editamos el cuadro de dilogo Orden de tabulacin desde el modo diseo haciendo clic con el botn derecho del ratn en el formulario y fuera de los objetos .
Seleccionamos las filas haciendo clic y arrastramos el campo al lugar deseado. Al final tiene que quedar as:
53
y hacemos clic en el
Elegimos la tabla Curso que ser la que proporcione los valores para el cuadro combinado y clic en Siguiente.
54
Seleccionamos los campos Codigo y Nombre de la tabla Curso para que aparezcan en el cuadro combinado. El campo Codigo contiene la informacin a almacenar en el campo CodigoCurso de la tabla Solicitud y el campo Nombre posee informacin del nombre del curso que nos ayudar a elegir el cdigo.
Se selecciona el campo Codigo como el valor a guardar en el campo CodigoCurso de la tabla Solicitud.
56
Se borra el cuadro de control Codigo Curso para evitar informacin duplicada, se disea a gusto el cuadro combinado y se coloca en el lugar adecuado.
Nota: Para aadir un campo que no est en la consulta, habr que editar sta y aadir dicho campo a la misma. Por ejemplo, si por error no se hubiera aadido a la consulta el campo Localidad de la tabla Localidad y fuera necesario presentarla en el formulario habra que editar la consulta y aadir dicho campo.
57
Propiedades de un formulario
Para visualizar las propiedades de cualquier objeto hay que situarse en l. Si no aparece un cuadro de dilogo con sus propiedades hay que hacer clic en el icono Propiedades. o ir a Ver
Estn agrupadas en categoras: Ficha formato: Presenta caractersticas sobre la apariencia del formulario o Vista predeterminada: Especifica la presentacin inicial del formulario Un nico formulario: Muestra un solo registro por pantalla Formularios continuos: Muestra tantos registros como quepan en la pantalla. o Hoja de datos: Muestra los campos como la vista de hoja de datos.
Selectores de registros: Pequeo cuadro o barra colocado a la izquierda de un registro en el que se puede hacer clic para seleccionar todo el registro.
58
ordenacin. o Origen del registro: Indica la tabla o consulta de donde se sacan los datos que se visualizan en el formulario. o o o Filtro: Permite poner una condicin para filtrar registros del origen. Permitir filtros: Da la posibilidad o no de poder permitir filtros. Permitir ediciones: Se podr o no realizar cambios en los datos que aparecen en el formulario. Si est establecida a No slo se podrn visualizar. o o o Permitir eliminaciones: Permite o no eliminar registros desde el formulario. Permitir agregar: Permite o no agregar registros desde el formulario. Entrada de datos: Slo tiene efectos cuando la anterior propiedad est establecida a S. El formulario se abre presentando slo un registro en blanco.
Ficha otras: o Emergente: Un formulario es emergente cuando permanece encima de otras ventanas. Puede ser modal o no. o Modal: Un formulario abierto como modal debe de cerrarse si se quiere pasar a otro formulario. Los cuadros de dilogo y los mensajes suelen ser modales. o Ciclo: Permite establecer qu sucede cuando se pulsa la tecla TAB y el enfoque se encuentra en el ltimo campo de un formulario. Todos los registros: Pasaremos al siguiente registro. Registro activo: Volvemos al primer campo del registro. Pgina activa: Regresamos al primer campo de la pgina.
59
Para saber el nombre del control del campo Domicilio edite sus propiedades (clic en el control y Ver Propiedades. La propiedad Nombre de la ficha Otras es el nombre del control:
Como el nombre del formulario es Solicitud, la referencia al control Domicilio sera la siguiente: Formularios ! [GestionSolicitud] ! [Domicilio]
60
Un filtro por formulario permite establecer condiciones de filtrado algo ms complejas utilizando condiciones o criterios de seleccin en cada uno de los controles que contiene el formulario Establecer los criterios. Por ejemplo, solicitudes del curso Approach que se han impartido en el 2002.
Clic en Archivo Exportar y elegir el tipo de archivo de Excel para exportar los datos. Darle un nombre a la hoja de clculo.
Nota: La combinacin de correspondencia desde Word se puede utilizar usando como origen de los datos el archivo Excel anteriormente exportado.
61
62
Ejercicios
Crear un formulario para gestionar los cursos GestionCurso- y los funcionarios GestionFuncionario- que los solicitan basndose en las consultas ConGestionCurso y ConGestionFuncionario. Establecer el orden de tabulacin.
63
64
Subformularios
65
66
Introduccin
Un subformulario es un formulario que se inserta en otro. El formulario primario se denomina formulario principal, y el formulario dentro del formulario se denomina subformulario. Una combinacin formulario/subformulario se denomina a menudo formulario jerrquico, formulario principal/detalle o formulario principal/secundario. Los subformularios son muy eficaces cuando se desea mostrar datos de tablas o consultas con una relacin uno a varios. Por ejemplo, puede crear un formulario con un subformulario para mostrar los cursos que ha hecho un funcionario. Los datos de la tabla Funcionario es el lado uno de la relacin y los datos de la tabla Solicitud constituyen el lado varios de la relacin, ya que cada funcionario puede haber presentado ms de una solicitud.
En la imagen, podemos observar que el funcionario Manuel Ruiz Fernndez ha solicitado los cursos de Approach y Word. Nota: Aunque un subformulario, al igual que el formulario principal, pued estar basado en tablas y en consultas, para aumentar la efectividad en nuestro proyecto se crearn subformularios basados en consultas, aunque vamos a ver inicialmente cmo crear a la misma vez formulario y subformulario a partir de tablas.
67
Hay que seleccionar por Funcionario, ya que queremos visualizar los cursos que ha hecho un funcionario, y Formulario con subformulario.
68
Elegir Tabular como distribucin a aplicar al subformulario para as poderle aadir tambin controles como botones.
Indicar el ttulo para el formulario Formulario ejemplo- como para el subformulario Subformulario Ejemplo.
Disear el formulario principal y el subformulario y distribuir los campos a nuestro gusto y establecer el orden de tabulacin Establecer como de slo lectura todos los campos del subformulario para evitar modificarlos. Idem para los campos del formulario principal que no pertenezcan a la tabla Funcionario -CP y Localidad.
69
el formulario principal.
70
La relacin entre las tablas Funcionario y Solicitud es de uno a varios. El formulario principal representa la parte uno y el subformulario la parte varios. La informacin de la parte varios no tiene por qu ser todos los campos de la tabla Solicitud, sino la ms representativa para nosotros, como la fecha de realizacin del curso, su duracin o si la solicitud ha sido o no aceptado, y lo principal: Cmo se llama el curso! Para representar el nombre del curso tenemos dos opciones: Mediante el campo CodigoCurso de la tabla Solicitud o mediante el campo Nombre
de la tabla Curso. El ms representativo y descriptivo es ste ltimo. Otro campo que hay que aadir es el campo que representa la clave ajena de la tabla Solicitud DNI- para poder vincular el formulario principal y el subformulario en el ltimo paso. Resumiendo, la consulta se llamar ConSubCurso y constar de estos campos:
71
72
El subformulario SubCurso
Abrimos el Asistente para formularios y seguimos estos pasos: Elegir en Tablas/Consultas la consulta creada anteriormente ConSubCurso- y aadir todos los campos que contiene. Pulsar Siguiente.
73
Como queremos un listado de las solicitudes, elegimos como forma de ver los datospor Solicitud y clic en Siguiente.
Se elige distribucin tabular para presentar los registros en filas y clic en Siguiente.
74
Se le aplica el estilo Estndar y se le da el nombre de SubCurso. El subformulario tendr un aspecto similar a este, al ser de distribucin tabular. Se utilizar para visualizar registros por lo que todos sus campos sern de slo lectura.
Hacer doble clic en el lugar del formulario principal donde queremos insertar el subformulario. Se abrir el asistente para controles que nos ir guiando para crear el subformulario. Elegimos el subformulario creado anteriormente y clic en Siguiente.
Definimos los campos que relacionan las tablas Funcionario y Solicitud DNI en las dos tablas. Pulsar Siguiente.
75
Por ltimo se le da un ttulo, por ejemplo: Cursos Solicitados, y finalizamos haciendo clic en Finalizar. No hay que confundir el ttulo y el nombre del subformulario. Para evitar duplicidad de informacin, eliminamos del subformulario el campo DNI. Establecemos como de slo lectura los dems campos del subformulario. Quedar en modo Vista as:
Nota: A todos los formularios creados se le pueden aadir botones a travs de los cuales se podrn realizar acciones sencillas como aadir o modificar registros, ir a otros formularios, etc. Veremos cmo se hace cuando tratemos las macros.
Formulario Curso: Para visualizar datos de los cursos que se han podido solicitar hasta ahora en la Direccin Provincial idem que el anterior respecto a las propiedades Activado y Bloqueado . Se impedir que desde l se puedan aadir, modificar o eliminar registros. Tiene agregado el subformulario SubFuncionario. Subformulario SubCurso: Todos los campos como slo lectura y slo para visualizar los cursos solicitados por los funcionarios.
Subformulario SubFuncionario: Todos los campos como slo lectura y slo para visualizar los funcionarios que han presentado un determinado curso.
77
78
Ejercicios
Crea un formulario -Curso- que visualice informacin sobre los cursos que se pueden
impartir en la Direccin Provincial y un subformulario SubFuncionario- con datos sobre los funcionarios que han solicitado cada uno de los cursos. Inserta el subformulario en el formulario principal Nota: Tanto el formulario principal como el subformulario tienen que estar basados en
consultas.
79
80
Macros
81
82
Introduccin
Las macros son un mtodo sencillo para realizar una o ms tareas bsicas como abrir un formulario o imprimir un informe. Las macros pueden ayudar a automatizar las tareas comunes. Por ejemplo, puede ejecutar una macro que imprima un informe cuando el usuario haga clic en un botn de comando. Una macro puede ser una macro compuesta de una secuencia de acciones, o puede ser un grupo de macros. Tambin se puede usar una expresin condicional para determinar si se llevar a cabo una accin en algunos casos cuando se ejecute la macro. Si guardamos la macro con el nombre de AutoExec, cada vez que se abra la base de datos se ejecutar automticamente ya que Access al arrancar comprueba si existe una macro con ese nombre. Si la encuentra ser el primer objeto que se ejecute antes de lanzar cualquier otro.
Por defecto, slo se visualizan las columnas Accin y Comentario. Para mostrar Nombre de macro y Condicin vaya al men ver. Nombre de macro: Identifica el nombre de la macro dentro de un grupo de macros. Condicin: Expresin condicional para determinar la ejecucin o no de una accin. Accin: Se utiliza para especificar una accin que desea que ejecute una macro. Para
especificar la accin de una macro haga clic en la celda accin y seleccione una accin de la lista. Comentario: Texto para describir lo que hace la accin.
Al seleccionar una accin aparece en la parte inferior sus. Por ejemplo, al elegir la accin AbrirFormulario los argumentos que aparecen son los siguientes:
Clic en el lugar del formulario donde se desea crear el botn. Darle nombre y tamao al botn. Mostrar las propiedades del botn y asociar una macro al evento Al hacer clic por ejemplo, Funcionario.Aadir que aade un registro de la tabla Funcionario.
Crear los dems botones siguiendo los mismos pasos anteriores. El formulario principal quedara diseado as:
84
Crear un macro
Podramos definir una macro que abra el formulario GestionFuncionario, para agregar un nuevo registro, cuando el usuario haga clic en un botn. Es fcil, tienes que ir al objeto Macro de la base de datos y hacer clic en . Se abrir la
ventana de diseo desde la que se irn seleccionando las acciones que debern ejecutarse de entre las existentes en la lista desplegable:
En la columna comentario se describe para qu sirve la accin. Una vez elegida la accin, en la parte inferior aparecen sus opciones:
Donde: Nombre del formulario es el formulario que queremos abrir. Hay que hacer clic en la fila
y seleccionarlo de la lista que aparece. Vista especifica el modo en que se abre el formulario (formulario, diseo, vista
preliminar, etc.) Nombre del filtro a aplicar al abrir el formulario. Condicin: Expresin SQL que se ejecuta para seleccionar los registros que cumplen la
condicin. Se genera con el generador de expresiones haciendo clic en Modo de datos, para especificar el modo de entrada de datos: o o o Agregar: Abre el formulario para agregar un nuevo registro. Modificar: Abre el formulario para modificar un registro. Slo lectura: Los registros aparecen en modo lectura y no se pueden modificar los campos. Modo de la ventana: Especifica el modo en que se abrir el formulario: o o Normal: Propiedad establecida por defecto. Oculta: Abre pero no muestra el formulario.
85
o o
Icono: Abre el formulario y lo minimiza. Dilogo: Formulario modal (debe de cerrar el formulario para poder hacer clic fuera de l) y emergente (permanece por encima de otras ventanas de la aplicacin.)
Se pueden aadir tantas acciones como queramos pero debindolas colocar en el orden por el que deseamos que se ejecuten. Para insertar o eliminar acciones se utilizan los botones insertar ejecutarse o eliminar . filas. Cuando se termina la macro puede guardarse o
Grupo de macros
Cuando se tienen varias macros como ser el ejemplo de nuestro proyecto- puede resultar dificultoso localizar una macro. Para solucionar este problema se crean grupos de macros para reunir las que estn relacionadas. Se crearn grupos de macros con el nombre del objeto desde el que se ejecuta. Por ejemplo, todas las macros que se ejecutan desde el formulario GestionFuncionario estarn contenidas en el grupo de macros GestionFuncionario. Para hacer referencia a una macro contenida en un grupo de macro hay que especificar el nombre del grupo y de la macro separados por un punto. Por ejemplo, la macro AadirRegistro del grupo GestionFuncionario tendr la referencia GestionFuncionairo.AadirRegistro.
El nombre en la columna Nombre de macro identifica a cada macro. Cuando se ejecuta una macro en un grupo de macros, Access lleva a cabo la accin de la columna accin y cualquiera otra que siga inmediatamente con una columna Nombre de macro en blanco.
El grupo Funcionario
Compuesto por todas las macros que se van a ejecutar desde el formulario Funcionario que lleva incrustado el subformulario SubFormulario. Botn Modificar Aadir Buscar Macro asociada Modificar Aadir Buscar Acciones Abre el formulario GestionFuncionario para aadir un nuevo registro. Abre el formulario GestionFuncionario para modificar un registro. Realiza bsquedas por el DNI.
86
Macro Aadir
El formulario que utilizamos para aadir nuevos funcionarios es GestionFuncionario. Por tanto, la accin que se ejecutar al hacer clic en el botn estos argumentos: ser abrir el formulario con
Modo de la ventana = Dilogo para que se abra el formulario no pueda desplazarse a otro objeto hasta que no se cierre y la informacin que se muestre permanezca encima de las dems ventanas de Access.
Macro Modificar
Para modificar registros de la tabla Funcionario tambin usaremos el formulario GesitonFuncionario. La accin a ejecutar una vez se haga clic en el formulario especificando estos argumentos: consistir en abrir
87
Modo de datos = Modificar ya que modificaremos un registro. Condicin WHERE = [Funcionario] ! [DNI] = [Formularios] ! [Funcionario] ! [DNI]
ya que queremos presentar en el formulario GestionFuncionario el funcionario cuyo DNI sea igual al que tenemos visualizado en el formulario Funcionario.
Macro Buscar
til para bsquedas basadas en el DNI de los funcionarios clave principal. Puede ocurrir que se encuentren o no registros, de ah que para que se ejecute o no la accin deber evaluarse una expresin condicional. Si la condicin es verdadera, Access lleva a cabo la accin en esa fila y cualquiera de las acciones inmediatamente posteriores que vayan precedidas por puntos suspensivos () en la columna Condicin. Habr que aadir al formulario Funcionario otro botn ms para que lleve a cabo estas acciones y un control de texto independiente no vinculado a ningn campo de las
tablas y que llamaremos VarBuscar- donde introduciremos el DNI a buscar. El formulario Funcionario quedar as:
88
Para saber si en la bsqueda se ha encontrado o no registros se utiliza la funcin Dcont que devuelve el nmero de registros hallados: Si es igual a 0 No se ha hallado ningn registro y por tanto se presenta un mensaje
advirtindoselo al usuario. Si es distinto de 0 Se presenta el registro hallado. Slo se pueden encontrar como
mximo un registro ya que el DNI es clave principal de la tabla Funcionario y su valor recordmoslo- es nico. La sintaxis de la funcin DCont: DCont(expr; dominio [; criterios] ) exp: Expresin requerida que identifica el campo por el que se desea contar los
registros DNI dominio: Argumento requerido. Puede ser el nombre de una tabla o consulta
Funcionario criterios: Opcional. Expresin de cadena utilizada para restringir el intervalo de los
datos en los que se ejecuta la funcin DCont. [DNI] = [Formularios]![Funcionario]![VarBuscar] Por tanto, las dos posibles condiciones son: Si se ha encontrado algn registro:
DCont("[DNI]";"Funcionario";"[DNI] = [Formularios]![Funcionario]![VarBuscar]")>0
Por lo que entonces se ejecutar la accin AplicarFiltro con la condicin [DNI] Como [Formularios]![Funcionario]![VarBuscar] Que equivale a lo mismo que si hubiramos aplicado un filtro por formulario y en el campo DNI hubiramos introducido el valor que se ha introducido en el control independiente VarBuscar.
DCont("[DNI]";"Funcionario";"[DNI] = [Formularios]![Funcionario]![VarBuscar]")=0
La accin a ejecutar ser el mostrar todos los registros y mostrar un cuadro de mensaje informando de que no se ha encontrado ningn registro.
89
Nota: El nombre del campo y la tabla deben de ir entre comillas y entre corchetes. El criterio entre comillas.
Resumen
El grupo Funcionario contiene tres macros para aadir, modificar y buscar registros de la tabla Funcionario.
El grupo Curso
Las acciones a llevar a cabo sern aadir y modificar registros. Se deja como ejercicio, slo hay que seguir los mismos pasos que cuando se crearon las macros del grupo Funcionario.
El grupo Solicitud
Una tarea muy til a realizar desde este formulario es la exportacin de registros para combinarlos con un documento Word y la de imprimir directamente escritos de Word ahorrndose la tarea de la exportacin- mediante cdigo de Visual Basic.
Nota: Adems, este grupo tiene las macros aadir, modificar y buscar, vistas en el grupo Funcionario as que no vamos a entrar en ms detalles.
90
Macro Exportar
Ojo, antes de pulsar en el botn que ejecuta la macro hay que asegurarse de que se ha aplicado un filtro por formulario para que slo se exporten los registros que cumplan las condiciones excepto cuando queremos hacer una exportacin de todos los registros. Para aplicar el filtro por formulario hay que hacer clic en bsqueda en el formulario. e introducir las condiciones de
El tipo de objeto desde el que vamos a realizar la exportacin es Formulario. El nombre del formulario es Solicitud. El tipo de archivo al que se va a exportar es Microsoft Excel 97-2003 (*.xls). El archivo de Microsoft Excel donde se exportan los registros es misolicitud.xls. Si no
91
Macro Imprimir
Cuando hay que imprimir un registro desde un formulario, una opcin a la fusin es hacerlo con Cdigo Visual Basic: Crear una plantilla en Microsoft Word en la que insertaremos el texto normal de un escrito ms unos campos personalizados (DNI, Nombre, Primer apellido, etc) desde Archivo Propiedades Personalizar. Por ejemplo, para el campo Localidad: o o o Nombre: Localidad Tipo: Texto Valor: Texto que aparece en la plantilla cuando se insertar el campo.
Insertar los campos en el documento y guardarlo como plantilla (extensin dot.) o Men Insertar Campo, seleccionar el nombre de campo DocProperty, seleccionar el nombre del campo a insertar en la plantilla y pulsar Aceptar.
92
Desde el evento Al hacer clic del botn Imprimir se hace clic en para crear el siguiente procedimiento:
Private Sub Comando38_Click() Dim documento = "modelo.dot" Dim directorio, strPROP Dim Escrito As Object directorio = Application.CurrentProject.Path Set Escrito = CreateObject("Word.Application")
With Escrito .Visible = False .Documents.Add directorio & "\" & documento End With
With Escrito.ActiveDocument For Each strPROP In .CustomDocumentProperties Select Case strPROP.Name 'Asignar campos Access a campos Word Case "DNI": strPROP.Value = Me.DNI Case "Nombre": strPROP.Value = Me.Funcionario_Nombre Case "PrimerApellido": strPROP.Value = Me.PrimerApellido Case "SegundoApellido": strPROP.Value=Me.SegundoApellido Case "Domicilio": strPROP.Value = Me.Domicilio Case "CP": strPROP.Value = Me.CP Case "Localidad": strPROP.Value = Me.Localidad_Nombre Case "Curso": strPROP.Value = Me.Curso_Nombre Case "FechaEntrada": strPROP.Value = Me.FechaEntrada Case "FechaCurso": strPROP.Value = Me.FechaCurso Case "Horas": strPROP.Value = Me.Horas End Select Next End With With Escrito .ActiveDocument.Fields.Update .ActiveDocument.PrintOut .ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges .Quit End With Set Escrito = Nothing MsgBox "Documento generado" End Sub
93
Resumen
El grupo Solicitud contiene cuatro macros para aadir, modificar, buscar y exportar registros.
El grupo Comun
En este grupo agregaremos las macros que van a ser comunes a dos o ms formularios. Vamos a incorporar en los formularios Funcionario, Solicitud y Curso un men para que podamos desplazarnos desde unos a otros. Para ello crearemos 3 macros comunes. Tambin se incluir la macro Aceptar para confirmar las variaciones que se hagan al aadir o modificar registros.
Macro Funcionario
Macro Curso
94
Macro Solicitud
Macro Aceptar
95
96
Formulario Curso
97
Formulario Funcionario
98
Formulario Solicitud
99
Formulario GestionCurso
100
Formulario GestionFuncionario
101
Formulario GestionSolicitud
102
Formulario SubCurso
103
Formulario SubFuncionario
104
105
106
Ejercicios
Crear las macros para los formularios Curso y GestionCurso.
107
108
INFORMES
109
110
Introduccin
El objeto informe se emplea para ofrecer una presentacin personalizada de la informacin pudiendo ordenarla, agruparla y resumirla en la forma deseada. Tambin permite generar totales de los datos numricos. Se utilizan para sacar datos de una base de datos e imprimirla. Un informe no es nada ms que una forma elegante y dinmica de presentar una tabla o consulta e imprimirlas. Tanto en su estructura como en su funcionamiento son prcticamente idnticos a los formularios, aunque a travs de informes no podemos modificar datos, slo presentarlos.
estndar de una forma rpida, ya que realizan automticamente todo el trabajo bsico. Access ir planteando cuestiones y con los datos que proporciona el usuario, se ir creando el informe. Autoinformes: Elaboran un informe sencillo predefinido por Access sin pedir ninguna
informacin al usuario. Vista diseo: Permite crear informes sin ayuda del asistente. Se parte de cero y solo
se recomienda su uso en el caso de que los asistentes no satisfagan los requerimientos del usuario.
111
Cuando hay campos de ms de una tabla en la consulta, Access nos da la opcin de presentar los datos por una de las tablas. En nuestro caso elegiremos por Funcionario.
Access nos da la opcin de agrupar y ordenar los registros que se van a presentar en el informe por uno o varios campos. Vamos a agruparlos por pueblos.
Tambin tenemos la opcin de calcular resmenes de alguno de los campos que van a presentarse en el informe optamos por calcula la suma del campo Sueldo- pulsando el botn
112
Se finaliza eligiendo la distribucin, estilo y nombre a dar al formulario en pasos, corporativa y Funcionario respectivamente.
Nota: Podramos haber creado un campo calculado en la consulta ConFuncionario para presentar los apellidos y el nombre y haber aadido al informe ste campo y no los del nombre y apellidos.
Para personalizar el informe hay que situarse en modo Diseo. Aparecer una ventana similar a sta:
113
Elementos de un informe
Secciones principales
Encabezado del informe: Se imprime una vez al principio del informe. El encabezado
del informe se utiliza para la informacin que normalmente aparecera en una pgina de portada, como un logotipo o un ttulo y una fecha. El encabezado del informe se imprime antes del encabezado de pgina. Cuando se coloca un control calculado en el encabezado del informe, se calcula el valor para todo el informe. Por ejemplo, si se coloca un control que utilice la funcin Suma en el encabezado del informe, se calcula la suma para todo el informe. Encabezado de pgina: Se imprime al principio de cada pgina. Se utiliza un
encabezado de pgina, por ejemplo, para repetir el ttulo del informe en todas las pginas. Encabezado de grupo: Se imprime al principio de cada grupo de registros y se utiliza
para imprimir el nombre del grupo. Por ejemplo, en un informe cuyos datos estn agrupados por pueblos como es nuestro ejemplo-, el encabezado de grupo se utiliza para imprimir el nombre de los pueblos. Cuando se coloca un control calculado que utilice la funcin Suma en el encabezado de grupo, la suma corresponde al grupo actual. Detalle: Seccin en la que aparecen los registros del origen del informe, que pueden
ser ms de uno. Se imprime una vez por cada fila del origen del informe. Pie de grupo: Se imprime al final de cada grupo de registros. Los pies de grupo se
utilizan para imprimir informacin de resumen de sus correspondientes grupos. Pi de pgina: Se imprime al final de cada pgina. Los pies de pgina se utilizan para
114
Pi de informe: Se imprime una vez al final del informe. Los pies del informe se utilizan
para imprimir los totales de los informes u otra informacin de resumen de todo el informe.
Opciones en un informe
Agrupar: Una de las opciones ms importantes en un informe es la posibilidad de
mostrar los datos agrupados, seleccionando uno o varios subgrupos. Al agrupar datos evitamos que aparezcan datos repetidos en nuestro informe. Forzar salto de pgina en los encabezados de grupo: Cada grupo comienza en una
nueva pgina. En vista de diseo, seleccionar el encabezado de grupo y establecer la propiedad Forzar nueva pgina
115
texto dependiente por cada uno de estos campos e incluye automticamente un control de etiqueta junto a cada uno de ellos.
En Campo/Expresin indicamos los campos por los que queremos agrupar el informe y en Orden el tipo de ordenacin. Encabezado de grupo: Para crear un encabezado de grupo de grupo para un campo. Pie de grupo: Para crear un pie de pgina de grupo. Agrupar en: Para especificar cmo agrupar datos en un campo por el tipo de datos.
116
Apellidos y Nombre: [Primerapellido]+" "+[Segundoapellido]+", "+[Funcionario_Nombre] Elegimos los campos de la consulta que queremos mostrar en el informe.
117
Aplicamos una distribucin y estilo. Finalizamos dndole el nombre de Listado Cursos. Por ltimo, en modo diseo, se personaliza el informe.
118
sencillo en Visual Basic que ser asociado al evento clic de un botn del formulario Solicitud. Tanto el formulario como el informe debern de estar basados en la misma consulta. Antes de crear el procedimiento, veamos qu hace el informe Solicitudes: Lista todas las solicitudes presentadas hasta la fecha, agrupados por el nombre de los
cursos. Todos los funcionarios que han solicitado algn curso aparecen en el informe sin
distinguir si lo han hecho o no. Esto sera til si quisiramos listar todos los cursos y los funcionarios que lo han solicitado. Pero a medida que la base de datos de nuestro proyecto crece, el informe ocupa ms pginas y los usuarios necesitan un sistema para imprimir slo aquellas pginas que les interesen. Para filtrar datos desde un formulario a un informe basados en la misma consulta- hay que seguir estos pasos: Se abre en modo diseo el formulario Solicitud y se le aade el botn Al evento clic del botn se le asocia este procedimiento: DoCmd.OpenReport "Listado Cursos", acViewPreview, , Me.Filter Siguiendo estos pasos: o o Editar las propiedades del botn en modo diseo e ir a la ficha Eventos. En el evento Al hacer clic, pulsar en y elegir Generador de cdigo. Pulsar Aceptar. .
119
Ahora, cuando desde el formulario Solicitud se realiza un filtro por formulario botn
y pulsar el
se presenta el informe con los registros que slo cumplen las condiciones
del filtrado. Por ejemplo, el listado de las solicitudes del curso Microsoft Word que han sido aceptadas:
120
121
grupo y editando sus propiedades. En la propiedad Forzar nueva pgina hay que seleccionar Antes de la seccin.
NOTA: Si ahora visualizamos el informe comprobaremos que se ha producido ese salto de pgina entre cada uno de los valores del campo por el que se ha agrupado el formulario.
que abra el informe Listado Funcionarios y le aplique el filtro por formulario igual que se hizo anteriormente. El cdigo es el siguiente:
122
debemos tomar las medidas de alto y ancho de etiquetas, mrgenes (superior, izquierdo y derecho) y separacin entre ellas (vertical y horizontal). Dependiendo del tipo de impresora lser matricial- los acuses de recibo se harn de una forma u otra. Para impresoras lser deberemos de crear un formulario personalizado desde el panel de impresoras y faxes ya que el largo de tres acuses de recibo es de 12 pulgadas -30,48 cm.-
Nota: La medida del alto es 30,48 cm. ya que son lo que miden de alto 3 acuses de recibo. El ancho -21 cm.- es el equivalente al A4.
123
124
125
126