Está en la página 1de 125

Microsoft Access Avanzado

------------------------------------------------------------------------------------

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.

Access es un Sistema Gestor de Base de Datos (SGBD)


Un software especfico dedicado a servir de intermediario entre la base de datos, el usuario y las aplicaciones que la utilizan y gestiona informacin se denomina un sistema de gestin de bases de datos SGBD DBMS (Data Base Management System). La estructura bsica de esta informacin son tablas. Para una mejor gestin de la informacin y para reducir el nmero de datos, las tablas se relacionan. Por ejemplo, si se desean tener un listado de los cursos solicitador por los funcionarios, en vez de incluir el nombre y apellidos en cada una de las solicitudes, bastar con almacenar los nmeros del DNI en cada curso. El nmero de DNI sirve para establecer una relacin con la tabla que contiene el nombre y los apellidos. Debido a este carcter relacional, Access es un sistema de gestin de bases de datos relacional SGBDR RDBMS (Relational

Data Base Management System).

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

Concepto de tablas, campos y registros


La informacin se almacena en tablas. Cada una de ellas tiene que tener un nombre nico en la Base de Datos y estn compuestas por filas (llamadas registros) y columnas (llamadas campos). En el ejemplo anterior, la base de datos est formada por dos tablas: Funcionario: Contiene informacin sobre los funcionarios, consta de 2 campos (DNI y

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.

Tipos de datos y su aplicacin


En Access se usa la propiedad Tipos de datos para especificar el tipo de datos almacenado en un campo de una tabla. Cada campo slo puede contener datos de un tipo. Dicha propiedad puede tener los valores siguientes: Tipo Texto Pueden contener Caracteres alfanumricos cualquier carcter del teclado. Los nmeros no pueden usarse en operaciones aritmticas. Cualquier carcter del teclado y se usa para almacenar grandes cantidades de informacin. Un ejemplo de este tipo de campo sera un campo de sugerencias o comentarios. Datos numricos utilizados para clculos matemticos. Pueden ser enteros o reales. Valores de fecha y hora para los aos 100 al 9999. Nmeros enteros o fraccionarios (como mximo de 4 decimales). Nmero secuencial nico que Access asigna cada vez Tamao El tamao por defecto es 50 y el mximo 255 Hasta 65.534 caracteres.

Memo

Numrico Fecha/hora Moneda Autonumrico


10

De diferentes longitudes 8 bytes 8 bytes 4 bytes

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.

Estructura de un fichero Access


Como se explica ms adelante en este documento, una base de datos consta de distintos objetos: tablas, consultas, relaciones, informes, formularios, etc. Todos los objetos de una base de datos se almacenan fsicamente en un slo fichero. Por ello en Access, se identifica una base de datos con el fichero en el que se almacena. Este fichero tiene la extesin mdb. Esta estructura de ficheros de Access es propia de esta aplicacin. Otros formatos de base de datos utilizan otros criterios. Por ejemplo los ficheros dBase de Lotus Approach utilizan un fichero para cada tabla con extensin dbf.
Informacin: Siempre que una base de datos mdb se encuentre abierta, en la misma carpeta de la base de datos se crea como archivo temporal de trabajo otro archivo con el mismo nombre que la base de datos pero extensin ldb. Este archivo es eliminado de forma automtica al ser cerrada la base de datos. Existe mientras la base de datos est en uso.

12

Diseo del proyecto de Base de Datos

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.

Base de datos Localidad


Para crear una sencilla base de datos -Localidad.mdb- que contenga informacin sobre las localidades de la provincia de Manab una vez iniciada una sesin de Access, los pasos a seguir son:  Hacer clic en Base de datos en blanco, del Panel de tareas.

Nota: Si no aparece el panel de tareas, hacer clic en Ver Panel de tareas.

 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

y abrir o visualizar los ya creados.

16

Panel de objetos: Situado a la izquierda, en l aparece una botonera con los

diferentes objetos que puede tener una base de datos. Para ir de una a otra hacemos clic en el nombre del objeto.

Ventana del documento: A la derecha del panel de objetos, presenta el nombre de

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.

Breve descripcin de cada uno de los objetos


Tablas: Principal objeto de la base de datos donde se almacena la informacin,

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

Mdulos: Conjunto de declaraciones y procedimientos de Visual Basic. No se vern en

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.

Crear la tabla Localidad


Para crear una tabla tenemos que posicionarnos en la ventana base de datos con el objeto Tablas seleccionado y hacer clic en el icono ventana con las distintas formas para crear una tabla: de la barra de botones. Se abrir una

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

Establecer la clave principal


Antes de guardar la tabla tendremos que definir el campo Codigo como clave principal (el nico que nos sirve para identificar los registros. No podemos elegir como clave principal el campo CP ya que hay pueblos que tienen el mismo Cdigo Postal) eligindolo y haciendo clic en el icono clave principal de la barra de herramientas. A la izquierda del nombre del

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.

y se escribe el nombre de la tabla

Ya podemos empezar a introducir datos haciendo doble clic en la tabla Localidad.

Estudio previo de la informacin a introducir


Antes de crear una base de datos debemos pensar bien el diseo de la misma, pues una vez creada y con datos introducidos, es ms difcil modificarla.
1

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:

Tablas y campos necesarios


Desde que el funcionario solicita el curso hasta que salen los listados de los admitidos ha sido necesario recoger una serie de informacin DNI, nombre y apellidos, nombre de los cursos, etc Toda esta informacin podemos recogerla en dos tablas: Tabla Funcionario: Con informacin relativa sobre quienes van a realizar los cursos.

Tabla Curso: Con informacin relativa a los cursos.

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

tabla y cada registro de sta con uno o varios registros 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:

Relacin entre la tabla Localidad y la tabla Funcionario


Esta relacin, como vimos, es de uno a varios. Lo que se hace, en este caso, es aadir a la tabla Funcionario la clave de la tabla Localidad El Codigo del pueblo ya que, como sabemos, el Cdigo Postal se repite en algunos pueblos.

Al campo CodigoPueblo de la tabla Funcionario se le llama clave ajena.

Relacin entre la tabla Funcionario y la tabla Curso


Dicha relacin es de varios a varios. Cuando la relacin es de este tipo, lo que se hace es crear otra tabla intermedia Solicitud- con las claves de las dos tablas (DNI de la de Funcionario y Cdigo de la tabla Curso). Adems, de una solicitud nos interesa, por ejemplo, la fecha de entrada y la fecha en la que empieza el curso, por lo que podemos aadir dos campos ms a la tabla Solicitud.

Resumen de nuestro supuesto


Al final, las relaciones que se han establecido en nuestro proyecto quedara as:

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

Localidad.Codigo Funcionario.DNI Funcionario.CodigoPueblo Solicitud.DNI Solicitud.CodigoCurso Curso.Codigo

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.

Vincular tablas de otra base de datos


La vinculacin de tablas es la manera que tiene Access de compartir tablas entre distintos archivos de bases de datos. As no se necesario abrir otro archivo para conectarse con las tablas contenidas en l. La vinculacin de tablas funciona con archivos Access mdb y de otro tipo de bases de datos como DBase (la que utiliza Lotus Approach). Las tablas vinculadas pueden ser ledas pero no modificadas. Para poderlo hacerlo se necesita tener abierto el archivo mdb que las contiene. Para ejemplificarlo, creamos la base de datos de nuestro proyecto, a la que llamaremos Cursos de Formacin, y desde all vincular la tabla Localidad de la base de datos Localidad.mdb:  Archivo Obtener datos externos Importar

23

 Selecciona el archivo Localidad.mdb y pulsa el botn Vincular.

 En la ventana Vincular tablas selecciona la tabla Localidad y pulsa el botn Aceptar.

Ahora podremos ver que la tabla Localidad est vinculada a nuestra base de datos ya que aparece con un signo en forma de flecha:

Crear la tabla Funcionario


Seguimos los mismos pasos que cuando se cre la tabla Localidad, aadiendo los campos siguientes:

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.

Relacionar las tablas Funcionario y Localidad


Una vez hemos creado las tablas Funcionario y Localidad, a Access se le tiene que decir cmo debe combinar la informacin mediante una relacin. En una relacin, los campos relacionados deben ser del mismo tipo de datos pero no es necesario que tengan el mismo nombre. Para crear una relacin hay que seguir estos pasos:  Hacer clic en Relaciones en la barra de herramientas o Herramientas

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

 En la ventana de relaciones aparecer la relacin que acabamos de crear:

Nota: Las relaciones entre Funcionario-Solicitud y Solicitud-Curso se proponen como ejercicio. Quedaran as:

Asimismo, cada una de estas tablas contendr estos campos:

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.

No se puede cambiar el valor de la clave principal de la tabla principal Funcionario-

si tiene registros relacionados en la otra tabla Solicitud-, salvo que se active la casilla
28

Actualizar en cascada los campos relacionados en la ventana Modificar relaciones.

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

tablas en forma tabular.

Creacin de mi primera consulta


Una vez presentadas las solicitudes para los cursos, el personal de Formacin junto con los sindicatos se renen para elegir a los funcionarios que van a asistir a los cursos. Por tanto, necesitamos un campo ms en la tabla Solicitud para poder distinguir quin de los que han solicitado los cursos van a realizarlos y quien no a dicho campo lo llamaremos Aceptado y ser de tipo booleano ya que contiene valores que pueden ser slo Verdadero o Falso (S/No):

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.

 Elegimos Asistente para consultas sencillas y clic en Aceptar.

 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.

El resultado que obtenemos en Access ser similar a ste:

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.

Consulta en ms de una tabla


Si miramos el resultado de la consulta anterior, no podemos saber cmo se llama el funcionario ni el curso al que hace referencia los registros que cumplan los criterios. Access permite hacer una consulta en la que estn implicados campos pertenecientes a ms de una tabla. Vamos crear otra consulta con los siguientes campos: Tabla Solicitud Funcionario Curso Campos Aceptada y FechaCurso Nombre, Primer apellido y Segundo apellido Nombre

 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.

Al ejecutarla, su resultado ser:

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

Crea un campo calculado con una consulta


Un campo calculado es el resultado de una operacin con uno o ms campos de las tablas. Por ejemplo, podemos combinar los campos Nombre, Primer apellido y Segundo apellido y definir un campo calculado como: Apellidos y Nombre = Primer Apellido + + Segundo Apellido + ; + Nombre Volvemos a borrar la consulta Solicitudes aceptadas y la crearemos ahora en vista de Diseo:

 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.

El resultado de la ejecucin de la consulta ser:

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

: Se utiliza junto con las casillas de verificacin, los botones de

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

logo. Marco de objeto independiente : Para insertar controles como un archivo de

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

: Slo tiene efecto en la Vista preliminar de un formulario y a la

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.

Formas de crear formularios


 Utilizando el asistente: Permite disear formularios con un formato estndar de una forma rpida. Puede contener campos de varias tablas o consultas.  Autoformularios: Elabora un formulario sencillo con campos de una sola tabla sin pedir ninguna informacin al usuario.  Vista diseo: Para crear formularios desde cero. Slo recomendable para expertos en el caso de que el asistente no satisfaga los requerimientos de los usuarios.

Nombre que se le van a dar a los formularios


GestionFuncionario: Para aadir o modificar registros en la tabla Funcionario. Basado

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

SubCurso: Subformulario asociado al formulario principal Funcionario. Basado en la

consulta ConSubCurso. SubFuncionario: Subformulario asociado al formulario principal Curso. Basado en la

consulta ConSubFuncionario.
Nota: Antes de crear un formulario, crearemos la consulta en la que se va a basar.

Creacin de formularios mediante el asistente


Es el que ms se utiliza, ya que no es tan rgido como los autoformularios ni tan laborioso como el realizado en Vista diseo. Facilita muchos pasos tediosos y permite una posterior personalizacin. Esta forma de creacin de formularios optimiza y, a su vez, minimiza el acceso a los datos, sobre todo cuando se trabaja en un sistema de red.

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

 Crear la consulta aadiendo los campos y guardarla como ConGestionSolicitud.

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

formularios y clic en Aceptar.

 En Tabla/Consultas, seleccionar la consulta antes creada ConGestionSolicitud- y aadir todos los campos pulsando y Siguiente.

48

 Elegimos, como forma de distribuir los campos en el formulario, la opcin Justificado.

 Cualquiera de los estilos a aplicar, por ejemplo Estndar.

 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

Agregar un campo a un formulario


Puede agregar rpidamente campos a un formulario o informe mediante el panel Lista de campos.

Para ver u ocultar la lista de campos ir a Ver Lista de campos.

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:

Establecer controles como de slo lectura


Como se puede observar, los campos con fondo amarillo no pertenecen a la tabla Solicitud por lo que deberemos de marcarlos como de slo lectura para evitar modificarlos. Para ello, hay que poner a S en la propiedad Bloqueado y No en la propiedad Activado.

53

Evitar aprender cdigos


Si aadimos un registro directamente desde GestionSolicitud vemos que al introducir el Cdigo del Curso debemos escribir el cdigo que tiene asignado en el campo Codigo de la tabla Curso. Podemos evitar memorizar dichos cdigos y facilitar la introduccin de datos en ese campo creando un control de cuadro combinado siguiendo los siguientes pasos:  Desde el modo diseo y teniendo activado el asistente para controles herramientas, seleccionamos el control cuadro combinado lugar del formulario donde queremos crearlo.  Se abrir el Asistente para cuadros combinados. Pulsamos siguiente una vez comprobado que hemos elegido la opcin siguiente: del cuadro de

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.

 Ordenamos la lista por el campo Nombre.

 Podemos ocultar o no la columna clave (campo Codigo). En nuestro caso no la ocultaremos.


55

 Se selecciona el campo Codigo como el valor a guardar en el campo CodigoCurso de la tabla Solicitud.

 Se almacena el valor seleccionado en el campo CodigoCuso de la tabla Solicitud.

 Se le da un nombre a la etiqueta que acompaa al cuadro combinado Codigo Curso.

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.

Que en el modo Vista aparecer as:

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.

Botones de desplazamiento: Botones para desplazarse por los registros.

Separadores de registros: Se suele utilizar cuando la vista predeterminada es la de formularios continuos.

58

Ficha datos: Caractersticas sobre la procedencia de los datos, permisos, filtros y

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.

Hacer referencia a los controles de un formulario o informe


Para hacer referencia al valor de un control de un formulario se escribe el identificador del formulario o informe que contiene el control, seguido del operador ! y del nombre del control.

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]

Exportar registros utilizando el Filtro por formulario


Con frecuencia, se producirn situaciones en las que los datos estn almacenados en Access y necesitemos utilizarlos desde un archivo Word para combinarlos. En este caso, exporte el contenido de la base de datos de Access a una hoja de clculo de Excel y despus combine la correspondencia utilizando el archivo de Excel con los datos exportados. Los pasos a seguir son los siguientes:  Identificar los datos que se desea exportar: Buscar el objeto formulario que contiene los datos que se desea exportar. En el ejemplo, el formulario Solicitud basado en la consulta ConSolicitud.  Abrir el objeto que contiene los datos y realizar una bsqueda utilizando el Filtro por formulario .

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.

 Aplicar el filtro haciendo clic en el icono aplicar filtro

 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.

Repaso de lo hecho hasta ahora


Hasta ahora, hemos diseado tres formularios con sus correspondientes consultas. Formulario GestionSolicitud GestionFuncionario GestionCurso Solicitud Descripcin Para aadir o modificar registros de la tabla Solicitud. Para aadir o modificar registros de la tabla Funcionario. Para aadir o modifica registros de la tabla Curso Para visualizar registros de la tabla Solicitud Consulta asociada ConGestionSolicitud ConGestionFuncionario ConGestionCurso ConSolicitud

67

Crear formulario y subformulario al mismo tiempo


Utilizando el asistente para formularios vamos a crear a la misma vez un formulario y un subformulario. El formulario contendr informacin sobre los funcionarios y el subformulario datos sobre los cursos solicitados.  Elegir qu datos vamos a presentar tanto en el formulario como en el subformulario. Tabla Funcionario Localidad Solicitud Curso Cdigo Postal y Localidad DNI, Fecha del curso, nmero de horas y Aceptada Nombre del curso Campos DNI, Nombre, Primer apellido, Segundo apellido, Domicilio y CodigoPueblo

 Desde el asistente para formularios, aadir todos los campos anteriores.

 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

Crear subformularios basado en consultas


Queremos construir un formulario que sea capaz de presentarnos en cada registro un funcionario y, relacionado con ste, otro que permita visualizar la relacin de cursos que ha solicitado. Por tanto, hay que crear un formulario principal Funcionario- y un subformulario SubCursosiguiendo estos pasos: Crear las consulta en la que se van a basar el formulario principal y el subformulario. Crear el formulario principal basado en su consulta asociada. Crear el subformulario basado en la consulta asociada. Insertar el subformulario en el formulario principal. Eliminar del subformulario el control DNI ya que esa informacin la tenemos repetida en

el formulario principal.

Consulta del formulario principal: ConFuncionario


A esta consulta la llamaremos ConFuncionario y ser idntica que la consulta ConGestionFuncionario que ya hemos construido. Por tanto, por no partir desde el inicio, podemos copiarla y despus darle su nombre siguiendo estos pasos:  Ir al objeto consultas, hacer clic con el botn derecho en ConGestionFuncionario y elegir copiar.

70

 Botn derecho Pegar. En el cuadro de dilogo dar el nombre a la consulta: ConFuncionario.

Consulta del subformulario: ConSubCurso


Merece la pena dedicarle tiempo a este primer paso ya que contendr la informacin que hay que presentar, en nuestro caso una relacin de los cursos solicitados. Recordemos que las relaciones entre las tablas del proyecto son las siguientes:

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

Tabla Solicitud Curso

Campos DNI, FechaCurso, Horas y Aceptada Nombre

El formulario principal Funcionario


 Una vez abierto el asistente, se seleccionan todos los campos de la consulta ConFuncionario en Tablas/Consultas y se pulsa Siguiente.

 Se selecciona distribucin justificada y clic en Siguiente.

72

 Se elije cualquier formato, por ejemplo estndar, y se le da el nombre de Funcionario.

El diseo del formulario se retoca para que quede ms presentable:

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.

Insertar el subformulario en el formulario principal


 Con el formulario principal abierto en modo Diseo, activar el Asistente para controles del cuadro de herramientas y el control Subformulario/Subinforme:

 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.

Funcin de nuestros formularios en el proyecto


 Formulario Funcionario: Slo para visualizar los datos de los funcionarios -todos los campos con la propiedad Activado=No y la propiedad Bloqueado=Si. Se impedir que desde l se puedan aadir, modificar o eliminar registros para esas acciones tenemos el formulario GestionFuncionario. Tiene agregado el subformulario SubCurso, que
76

lista los cursos pedidos por cada funcionario.

 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.

Nota: Observese que en el subformulario hay un campo calculado: Nombre y apellidos

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:

Crear botones en Funcionario


 Abrir, en modo diseo, el formulario Funcionario.  Visualizar Cuadro de herramientas y desactivar asistente para controles Selecciona el control .
83

 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:

Al pulsa los botones se ejecuta la macro asociada.

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 datos = Agregar porque vamos a aadir un registro

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.

Si no se ha encontrado ningn registro:

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

La macro Funcionario.Buscar con las acciones antes comentadas:

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

Opciones cuando se filtra por formulario:

Para realizar la exportacin de registros se utiliza la accin SalidaHacia.

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

se especifica ningn directorio lo almacena en Mis Documentos.

91

Autoinicio se ha puesto en No para no abrir el archivo misolicitud.xml.

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

Al estar en blanco el Tipo de objeto se cierra la ventana activa.

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

ANEXO DE LAS ACCIONES MS UTILIZADAS


Accin AbrirConsulta AbrirFormulario AbrirInforme AbrirTabla BuscarRegistro BuscarSiguiente CancelarEvento Cerrar CuadroMsj DetenerMacro DetenerTodasMacros Eco EjecutarMacro EstablecerValor Guardar Imprimir IraControl IraRegistro MostrarTodosRegistros NuevaConsulta SalidaHacia Salir Abre un formulario. Abre un informe. Abre una tabla. Para buscar el primer registro que cumpla unas condiciones. Se posiciona en el registro siguiente que cumple los criterios indicados en la accin BuscarRegistro. Cancela el evento que ejecut la macro que contiene esta accin. Cierra la ventana especificada o la activa si no se indica ninguna. Muestra mensajes para interactuar con el usuario. Detiene la macro que se est ejecutando. Detiene todas las macros que se estn ejecutando. Oculta o muestra los resultados de una macro mientras se ejecuta. Ejecuta una macro. til para ejecutar una macro desde otra macro. Establece un valor para un control. Guarda el objeto especificado o el activo si no se especifica su nombre. Imprime el objeto activo hoja de datos, informes Mueve el cursos al control especificado. Para ir a un registro determinado. Quitar el filtro aplicado y muestra todos los registros. Vuelve a consultar un control especificado en el objeto activo o el objeto si no se especifica ningn control. Exporta los registros al formato especificado Excel, Word, texto, html Cierra Access. Descripcin Para abrir una consulta de entre las que se disponen.

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.

Formas de crear un informe


Asistente para informes o etiquetas: Permite disear informes con un formato

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.

Crear informe con ayuda del asistente


Con el asistente se pueden crear informes con diseos variados. Tras haber seleccionado Asistente para informes en la ventana de nuevo informe, debemos de seleccionar la tabla o consulta con la que vamos a elaborar el informe. Tomando como ejemplo nuestro proyecto, crearemos un informe que nos liste todos los funcionarios que han solicitado alguna vez algn curso, por lo que nos basaremos en la consulta ConFuncionario.

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

imprimir nmeros de pgina o informacin relativa a la pgina.

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

Agregar campos u otros controles a un informe existente


Cada campo, etiqueta, lnea o imagen que se ve en un informe se ha creado mediante algn tipo de control. El control ms utilizado en un informe es el cuadro de texto, que suele utilizarse para mostrar los datos del origen de registros subyacente del informe. Podemos crear cuadros de texto que ya estn enlazados con campos del origen de registros agregando campos del panel Lista de campos, o bien, agregarlos al informe mientras trabaja en la vista Diseo (pero, en ese caso, hay que enlazarlos a los campos del origen de registros). La vista Diseo tiene como ventaja que se pueden agregar muchos otros tipos de controles, adems de los cuadros de texto dependientes, como rectngulos, saltos de pgina y grficos. En esta seccin se describen ambos mtodos de agregar controles a un informe.

Agregar campos a un informe existente


Desde la vista Diseo, asegurarse de que se muestra el panel Lista de campos lista de todos los campos que estn disponibles para su colocacin en el informe. Para ver el panel Lista de campos pulsamos ALT + F8. Para agregar campos desde el panel Lista de campos hay que seleccionarlos y arrastrarlos a la seccin del informe donde deseemos incluirlo. Al crear los campo, Access crea un cuadro de

115

texto dependiente por cada uno de estos campos e incluye automticamente un control de etiqueta junto a cada uno de ellos.

Agregar o modificar el agrupamiento y la ordenacin


Si ya tenemos un informe y queremos ordenarlo o agruparlo, o bien, modificar la ordenacin o el agrupamiento, desde el modo Diseo, mostramos el panel ordenar y agrupar haciendo clic en Ver Ordenar y agrupar.

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.

El informe Listado Cursos


Utilizando el asistente vamos a crear un informe que liste los funcionarios que han solicitado cada uno de los cursos que ha convocado la Direccin Provincial. Va a estar basado en la consulta ConSolicitud. Pasos a seguir:  Creamos en la consulta un campo calculado que combine los apellidos y el nombre.

116

Apellidos y Nombre: [Primerapellido]+" "+[Segundoapellido]+", "+[Funcionario_Nombre]  Elegimos los campos de la consulta que queremos mostrar en el informe.

 Elegimos ver los datos por curso.

 Ordenamos por el campo calculado Apellidos y nombre.

117

 Aplicamos una distribucin y estilo. Finalizamos dndole el nombre de Listado Cursos. Por ltimo, en modo diseo, se personaliza el informe.

Filtrado de datos en un informe


Los informes creados con el asistente nos ayudan a organizar e imprimir los cursos y los funcionarios que lo han solicitado pero, normalmente, los usuarios querrn imprimir un subconjunto de estos registros y no la totalidad, por lo que debemos de proporcionar un mtodo personalizado para seleccionar registros mediante la creacin de un procedimiento

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. .

Escribir el cdigo anterior en el procedimiento a crear.

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:

El informe Listado funcionarios


Vamos a crear un informe que liste los cursos que ha solicitado cada uno de los funcionarios de la Direccin Provincial agrupacin por el campo Funcionario- y que resuma el total de horas de todos los cursos solicitados por el funcionario. Se har a travs del asistente y basado en la consulta ConSolicitud y los registros estarn ordenador por la fecha en que se solicit. Los pasos a seguir son similares a los del anterior formulario ms la opcin de calcular los valores de resumen del campo Horas. Campos de la consulta que se utilizarn para el informe son los siguientes:

Ver los datos por Funcionario.

120

Resumir por el campo Horas.

Ordenar los registros por la fecha de solicitud del curso.

Una vez retocado en modo diseo, el formulario quedara as:

Forzar nueva pgina en cada encabezado de grupo


Por defecto, cuando se crea un informe agrupado por algn campo Access no inserta un salto de pgina en cada uno de los valores que toma ese campo. Si queremos que lo haya, hay que decirle en modo diseo- que se produzca el salto de pgina seleccionando el encabezado de

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.

Filtrar los datos del informe desde el formulario Solicitud


En el formulario Solicitud aadimos un botn y le asociamos un procedimiento

que abra el informe Listado Funcionarios y le aplique el filtro por formulario igual que se hizo anteriormente. El cdigo es el siguiente:

Creacin de etiquetas postales


Antes de comenzar la elaboracin de las etiquetas postales acuses de recibo- debemos de tener en cuenta el tamao del papel y el tamao de las etiquetas, pues dichos tamaos nos sern requeridos durante su proceso de creacin. Se pueden dar dos casos: Las etiquetas tienen unas dimensiones estndar: en este caso slo debemos

seleccionarlas de una lista de etiquetas proporcionada por Access.

122

Las etiquetas no se encuentran en la lista de etiquetas estndar: en este caso

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.-

Creacin de un formulario desde el panel Impresoras y faxes


Abrimos el cuadro de dilogo de las propiedades del servidor de impresin haciendo clic en Archivo Propiedades del servidor y configuramos un nuevo formulario Acuses- con los siguientes parmetros:

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.

Acuses de recibo para impresoras matriciales


Para generar acuses de recibo hay que recurrir al asistente para etiquetas. La creacin del informe Acuses para matriciales basado en la consulta ConFuncionario es similar a la creacin de los informes anteriores con estas diferencias:  Hay que elegir Asistentes para etiquetas en vez de Asistentes para formularios.

123

 Personalizar una nueva etiqueta Acuses- cuyo tamao es 10,16cm x 21cm.

124

 Establecer el formato del texto color y fuente.

 Aadir los campos y el texto a la etiqueta.

125

 Ordenar la etiqueta por uno o ms campos.

 Darle un nombre Acuses para matriciales- a la etiqueta.

Acuses de recibo para impresoras lser


No hay que crear ninguna etiqueta personalizada. Utilizaremos la etiqueta Avery siguiente:

Los pasos son similares a los vistos en las matriciales.

126

También podría gustarte