Vous êtes sur la page 1sur 126

Microsoft Access Avanzado

Corpus Ruiz Fernndez


Coordinacin de Informtica
DIRECCIN PROVINCIAL DE LA TGSS DE CIUDAD REAL
------------------------------------------------------------------------------------

Curso del 4 al 5 de julio de 2007
AccessAvanzado2003
2
CorpusRuizFernndez


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
AccessAvanzado2003
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
4
CorpusRuizFernndez
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
5
AccessAvanzado2003
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

6
CorpusRuizFernndez
Introduccin
7
AccessAvanzado2003
8
CorpusRuizFernndez
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
AccessAvanzado2003

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 Pueden contener Tamao
Texto Caracteres alfanumricos cualquier carcter del
teclado. Los nmeros no pueden usarse en
operaciones aritmticas.
El tamao por defecto es 50 y el
mximo 255
Memo 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.
Hasta 65.534 caracteres.
Numrico Datos numricos utilizados para clculos matemticos.
Pueden ser enteros o reales.
De diferentes longitudes
Fecha/hora Valores de fecha y hora para los aos 100 al 9999. 8 bytes
Moneda Nmeros enteros o fraccionarios (como mximo de 4
decimales).
8 bytes
Autonumrico Nmero secuencial nico que Access asigna cada vez 4 bytes
10
CorpusRuizFernndez
que se aade un registro a una tabla.
Booleano (S/No) Slo dos valores: S o No. 1 bit
Objeto OLE Objeto (como documento Word, imgenes) vinculado
o incrustado en una tabla.
Hasta 1Gb
Hipervnculo Direccin de pgina web, de correo electrnico o de un
archivo en el disco local.
2048 caracteres
Asistente para
bsquedas
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.
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
AccessAvanzado2003
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
CorpusRuizFernndez
Diseo del proyecto de Base
de Datos
13
AccessAvanzado2003
14
CorpusRuizFernndez
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.
Mi primera base de datos
Para crear una sencilla base de datos -Localidad.mdb- que contenga informacin sobre las
localidades de la provincia de Ciudad Real 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
AccessAvanzado2003

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
CorpusRuizFernndez
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
AccessAvanzado2003
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 de la barra de botones. Se abrir una
ventana con las distintas formas para crear una tabla:

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 opcionalmente-
se indica una descripcin para cada campo:

18
CorpusRuizFernndez
En la parte inferior de cada campo tenemos la ficha General para definir propiedades del
campo como por ejemplo:
Cdigo CP Nombre
Tamao del campo
1
Entero Entero 30
Formato
2
00000 00000
Ttulo
3
Cdigo del pueblo Cdigo Postal Localidad
Lugares decimales 0 0
Requerido
4
S S S
Indexado
5
S (Sin duplicados) Si (Con duplicados) No
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 y se escribe el nombre de la tabla
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.
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
Para personalizar la forma en que los nmeros, fechas, horas y texto se muestran e imprimen.
3
La etiqueta para el campo cuando se utiliza para un formulario.
4
Hacer obligatoria o no la entrada de datos en el campo.
5
Un ndice para acelerar las bsquedas y ordenamientos en un campo.
19
AccessAvanzado2003
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
CorpusRuizFernndez


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
AccessAvanzado2003
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
CorpusRuizFernndez

1 Clave principal de la tabla Localidad Localidad.Codigo
2 Clave principal de la tabla Funcionario Funcionario.DNI
3 Clave ajena de la tabla Funcionario Funcionario.CodigoPueblo
4 Clave ajena de la tabla Solicitud Solicitud.DNI
5 Clave ajena de la tabla Solicitud Solicitud.CodigoCurso
6 Clave principal de la tabla Curso Curso.Codigo
La clave principal de la tabla Solicitudsera 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
AccessAvanzado2003
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
CorpusRuizFernndez
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 0a 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
AccessAvanzado2003

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
CorpusRuizFernndez
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
AccessAvanzado2003

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
CorpusRuizFernndez
Actualizar en cascada los campos relacionados en la ventana Modificar relaciones.

29
AccessAvanzado2003
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 Aadir datos algunos funcionarios.
o Aadir distintos tipos de cursos.
o Aadir unas cuantas solicitudes de funcionarios que ya estn mecanizados.
30
CorpusRuizFernndez
31
AccessAvanzado2003
Consultas
32
CorpusRuizFernndez
33
AccessAvanzado2003
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
CorpusRuizFernndez
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
AccessAvanzado2003

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
CorpusRuizFernndez

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 Campos
Solicitud Aceptada y FechaCurso
Funcionario Nombre, Primer apellidoy Segundo apellido
Curso 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
AccessAvanzado2003

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 Frmula
Obtener solicitudes de un ao en concreto Ao([FechaEntrada])=2007
Obtener solicitudes del ao actual Ao([FechaEntrada])=Ao(Ahora())
Obtener solicitudes del mes actual Ao([FechaEntrada])=Ao(Ahora()) Y
Mes([FechaEntrada])=Mes(Ahora())
Obtener solicitudes presentadas en un intervalo de
fechas.
>#01/01/2007# Y <#30/06/2007#
38
CorpusRuizFernndez
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
AccessAvanzado2003
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
CorpusRuizFernndez
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
AccessAvanzado2003
Formularios
42
CorpusRuizFernndez
43
AccessAvanzado2003
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
CorpusRuizFernndez
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).
o 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
AccessAvanzado2003
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.
Rectngulo : Para insertar un 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
CorpusRuizFernndez
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 Campos
Solicitud 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 Nombre, Primer apellido, Segundo apellido y Domicilio.
Localidad CP y Localidad
Curso Nombre

Crear la consulta aadiendo los campos y guardarla como ConGestionSolicitud.

Una vez creada la consulta, vamos a crear nuestro primer formulario GestionSolicitud-
utilizando el asistente.
47
AccessAvanzado2003
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
CorpusRuizFernndez

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

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
AccessAvanzado2003

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
CorpusRuizFernndez

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
AccessAvanzado2003

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
CorpusRuizFernndez
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
AccessAvanzado2003

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 del cuadro de
herramientas, seleccionamos el control cuadro combinado y hacemos clic en el
lugar del formulario donde queremos crearlo.
Se abrir el Asistente para cuadros combinados. Pulsamos siguiente una vez
comprobado que hemos elegido la opcin siguiente:

Elegimos la tabla Curso que ser la que proporcione los valores para el cuadro
combinado y clic en Siguiente.
54
CorpusRuizFernndez

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
AccessAvanzado2003

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
CorpusRuizFernndez

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
AccessAvanzado2003
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 o ir a Ver
Propiedades.

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.
Hoja de datos: Muestra los campos como la vista de hoja de datos.
o 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.

o Botones de desplazamiento: Botones para desplazarse por los registros.

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

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 Filtro: Permite poner una condicin para filtrar registros del origen.
o Permitir filtros: Da la posibilidad o no de poder permitir filtros.
o 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 Permitir eliminaciones: Permite o no eliminar registros desde el formulario.
o Permitir agregar: Permite o no agregar registros desde el formulario.
o 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
AccessAvanzado2003
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
CorpusRuizFernndez

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
AccessAvanzado2003

62
CorpusRuizFernndez
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
AccessAvanzado2003
64
CorpusRuizFernndez
Subformularios
65
AccessAvanzado2003
66
CorpusRuizFernndez
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 Descripcin Consulta asociada
GestionSolicitud Para aadir o modificar registros de la tabla Solicitud. ConGestionSolicitud
GestionFuncionario Para aadir o modificar registros de la tabla Funcionario. ConGestionFuncionario
GestionCurso Para aadir o modifica registros de la tabla Curso ConGestionCurso
Solicitud Para visualizar registros de la tabla Solicitud ConSolicitud
67
AccessAvanzado2003
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 Campos
Funcionario DNI, Nombre, Primer apellido, Segundo apellido, Domicilio y CodigoPueblo
Localidad Cdigo Postal y Localidad
Solicitud DNI, Fecha del curso, nmero de horas y Aceptada
Curso Nombre del curso
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
CorpusRuizFernndez
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
AccessAvanzado2003

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 SubCurso-
siguiendo 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
CorpusRuizFernndez

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
AccessAvanzado2003
Tabla Campos
Solicitud DNI, FechaCurso, Horas y Aceptada
Curso 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
CorpusRuizFernndez
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
AccessAvanzado2003

Como queremos un listado de las solicitudes, elegimos como forma de ver los datos-
por Solicitud y clic en Siguiente.

Se elige distribucin tabular para presentar los registros en filas y clic en Siguiente.

74
CorpusRuizFernndez
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
AccessAvanzado2003

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
CorpusRuizFernndez
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
AccessAvanzado2003
78
CorpusRuizFernndez
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
AccessAvanzado2003
80
CorpusRuizFernndez
Macros
81
AccessAvanzado2003
82
CorpusRuizFernndez
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
AccessAvanzado2003

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
CorpusRuizFernndez
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 Agregar: Abre el formulario para agregar un nuevo registro.
o Modificar: Abre el formulario para modificar un registro.
o 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 Normal: Propiedad establecida por defecto.
o Oculta: Abre pero no muestra el formulario.
85
AccessAvanzado2003
o Icono: Abre el formulario y lo minimiza.
o 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 o eliminar filas. Cuando se termina la macro puede guardarse o
ejecutarse .
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 Macro asociada Acciones
Modificar Modificar Abre el formulario GestionFuncionario para aadir un
nuevo registro.
Aadir Aadir Abre el formulario GestionFuncionario para modificar un
registro.
Buscar Buscar Realiza bsquedas por el DNI.
86
CorpusRuizFernndez


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 ser abrir el formulario con
estos argumentos:

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 consistir en abrir
el formulario especificando estos argumentos:

87
AccessAvanzado2003
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
CorpusRuizFernndez
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
AccessAvanzado2003
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
CorpusRuizFernndez
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 e introducir las condiciones de
bsqueda en el formulario.

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
AccessAvanzado2003
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 Nombre: Localidad
o Tipo: Texto
o 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
CorpusRuizFernndez
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
AccessAvanzado2003
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
CorpusRuizFernndez
Macro Solicitud

Macro Aceptar

Al estar en blanco el Tipo de objeto se cierra la ventana activa.
95
AccessAvanzado2003
96
CorpusRuizFernndez
Formulario Curso


97
AccessAvanzado2003
Formulario Funcionario

98
CorpusRuizFernndez
Formulario Solicitud

99
AccessAvanzado2003
Formulario GestionCurso

100
CorpusRuizFernndez
Formulario GestionFuncionario

101
AccessAvanzado2003
Formulario GestionSolicitud

102
CorpusRuizFernndez
Formulario SubCurso


103
AccessAvanzado2003

Formulario SubFuncionario



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

105
AccessAvanzado2003
106
CorpusRuizFernndez
Ejercicios
Crear las macros para los formularios Curso y GestionCurso.
107
AccessAvanzado2003
108
CorpusRuizFernndez
INFORMES
109
AccessAvanzado2003
110
CorpusRuizFernndez
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
AccessAvanzado2003
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
CorpusRuizFernndez

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
AccessAvanzado2003

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
CorpusRuizFernndez
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
AccessAvanzado2003
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
CorpusRuizFernndez
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
AccessAvanzado2003

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
CorpusRuizFernndez
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 Editar las propiedades del botn en modo diseo e ir a la ficha Eventos.
o En el evento Al hacer clic, pulsar en y elegir Generador de cdigo. Pulsar
Aceptar.

o Escribir el cdigo anterior en el procedimiento a crear.

119
AccessAvanzado2003


Ahora, cuando desde el formulario Solicitud se realiza un filtro por formulario y pulsar el
botn 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
CorpusRuizFernndez
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
AccessAvanzado2003
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
CorpusRuizFernndez
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
AccessAvanzado2003

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



124
CorpusRuizFernndez


Establecer el formato del texto color y fuente.

Aadir los campos y el texto a la etiqueta.

125
AccessAvanzado2003
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

Vous aimerez peut-être aussi