SlideShare una empresa de Scribd logo
1 de 126
Descargar para leer sin conexión
Microsoft Access Avanzado
Corpus Ruiz Fernández
Coordinación de Informática
DIRECCIÓN PROVINCIAL DE LA TGSS DE CIUDAD REAL
------------------------------------------------------------------------------------
Curso del 4 al 5 de julio de 2007
Access Avanzado 2003 
2 
Corpus Ruiz Fernández 
Índice
Introducción................................................................................................................................... 7
Access es un Sistema Gestor de Base de Datos (SGBD)........................................................ 9
Concepto de tablas, campos y registros ................................................................................. 10
Tipos de datos y su aplicación................................................................................................. 10
Campo clave............................................................................................................................ 11
Estructura de un fichero Access.............................................................................................. 12
Diseño del proyecto de Base de Datos....................................................................................... 13
Mi primera base de datos ........................................................................................................ 15
Ventana de Localidad.mdb .................................................................................................. 16
Breve descripción 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 información a introducir........................................................................... 19
Tablas y campos necesarios................................................................................................ 20
Tipo de relaciones................................................................................................................ 20
Relación entre la tabla Localidad y la tabla Funcionario ..................................................... 22
Relación 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 
Access Avanzado 2003 
Introducción ............................................................................................................................. 34
Tipos de consultas................................................................................................................... 34
Creación de mi primera consulta............................................................................................. 34
Consulta en más de una tabla................................................................................................. 37
Crea un campo calculado con una consulta............................................................................ 39
Formularios.................................................................................................................................. 42
Introducción ............................................................................................................................. 44
¿Cómo se construyen?............................................................................................................ 44
Los controles............................................................................................................................ 45
Formas de crear formularios.................................................................................................... 46
Nombre que se le van a dar a los formularios......................................................................... 46
Creación de formularios mediante el asistente ....................................................................... 47
El formulario GestionSolicitud.................................................................................................. 47
El formulario Solicitud.............................................................................................................. 51
Agregar un campo a un formulario ...................................................................................... 52
Orden de tabulación............................................................................................................. 53
Establecer controles como de sólo lectura .......................................................................... 53
Evitar aprender códigos ....................................................................................................... 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
Introducción ............................................................................................................................. 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 
Corpus Ruiz Fernández 
El subformulario SubCurso...................................................................................................... 73
Insertar el subformulario en el formulario principal.................................................................. 75
Función de nuestros formularios en el proyecto...................................................................... 76
Ejercicios.................................................................................................................................. 79
Macros......................................................................................................................................... 81
Introducción ............................................................................................................................. 83
Crear botones en Funcionario.............................................................................................. 83
Crear un macro........................................................................................................................ 85
Grupo de macros..................................................................................................................... 86
El grupo Funcionario................................................................................................................ 86
Macro Añadir........................................................................................................................ 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 
Access Avanzado 2003 
Formulario SubCurso............................................................................................................. 103
Formulario SubFuncionario ................................................................................................... 104
ANEXO DE LAS ACCIONES MÁS UTILIZADAS.................................................................. 105
Ejercicios................................................................................................................................ 107
INFORMES................................................................................................................................ 109
Introducción ........................................................................................................................... 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 ordenación........................................................... 116
El informe Listado Cursos...................................................................................................... 116
Filtrado de datos en un informe............................................................................................. 118
El informe Listado funcionarios ............................................................................................. 120
Forzar nueva página en cada encabezado de grupo ........................................................ 121
Filtrar los datos del informe desde el formulario Solicitud ................................................. 122
Creación de etiquetas postales ............................................................................................. 122
Creación de un formulario desde el panel Impresoras y faxes.......................................... 123
Acuses de recibo para impresoras matriciales .................................................................. 123
Acuses de recibo para impresoras láser............................................................................ 126
6 
Corpus Ruiz Fernández 
Introducción
7 
Access Avanzado 2003 
8 
Corpus Ruiz Fernández 
Microsoft Access es un programa para la gestión de información que diseña las estructuras
para almacenar la información y los medios para su introducción y explotación. Para explicar
este propósito 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 más difíciles de gestionar) para pasar a diseñar bases de datos
compuestas de varias tablas entre las que existe una relación (estructura relacional).
La versión 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 teoría iremos creando una aplicación que al final sea capaz de gestionar
las solicitudes de los Cursos de Formación.
El curso está dirigido a todos los trabajadores de la Dirección 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 más alto.
Access es un Sistema Gestor de Base de Datos (SGBD)
Un software específico dedicado a servir de intermediario entre la base de datos, el usuario y
las aplicaciones que la utilizan y gestiona información se denomina un sistema de gestión de
bases de datos SGBD ó DBMS (Data Base Management System). La estructura básica de esta
información son tablas.
Para una mejor gestión de la información y para reducir el número 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 números del DNI en cada curso. El número de DNI sirve para establecer una
relación con la tabla que contiene el nombre y los apellidos. Debido a este carácter relacional,
Access es un sistema de gestión de bases de datos relacional SGBDR ó RDBMS (Relational
Data Base Management System).
Si se hubiese utilizado sólo una tabla, al añadir los registros hubiera sido necesario introducir
varias veces el nombre y apellido de la persona que lo ha solicitado, almacenándose
información redundante, pudiendo cometerse errores como se muestra en la siguiente tabla.
9 
Access Avanzado 2003 
Concepto de tablas, campos y registros
La información se almacena en tablas. Cada una de ellas tiene que tener un nombre único en
la Base de Datos y están compuestas por filas (llamadas registros) y columnas (llamadas
campos).
En el ejemplo anterior, la base de datos está formada por dos tablas:
Funcionario: Contiene información sobre los funcionarios, consta de 2 campos (DNI y
Nombre y apellidos) y 1 registro.
Curso: Contiene información sobre los cursos, consta de 3 campos (Código 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 información. Ejemplos de base de datos son:
Base de datos para la gestión de los cursos de nuestra Dirección 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 aplicación
En Access se usa la propiedad Tipos de datos para especificar el tipo de datos almacenado en
un campo de una tabla. Cada campo sólo puede contener datos de un tipo. Dicha propiedad
puede tener los valores siguientes:
Tipo Pueden contener… Tamaño
Texto Caracteres alfanuméricos –cualquier carácter del
teclado. Los números no pueden usarse en
operaciones aritméticas.
El tamaño por defecto es 50 y el
máximo 255
Memo Cualquier carácter del teclado y se usa para almacenar
grandes cantidades de información. Un ejemplo de este
tipo de campo sería un campo de sugerencias o
comentarios.
Hasta 65.534 caracteres.
Numérico Datos numéricos utilizados para cálculos matemáticos.
Pueden ser enteros o reales.
De diferentes longitudes
Fecha/hora Valores de fecha y hora para los años 100 al 9999. 8 bytes
Moneda Números enteros o fraccionarios (como máximo de 4
decimales).
8 bytes
Autonumérico Número secuencial único que Access asigna cada vez 4 bytes
10 
Corpus Ruiz Fernández 
que se añade un registro a una tabla.
Booleano (Sí/No) Sólo dos valores: Sí o No. 1 bit
Objeto OLE Objeto (como documento Word, imágenes…) vinculado
o incrustado en una tabla.
Hasta 1Gb
Hipervínculo Dirección de página web, de correo electrónico o de un
archivo en el disco local.
2048 caracteres
Asistente para
búsquedas
Crea un campo que permite elegir un valor de otra
tabla o de una lista de valores mediante un cuadro de
lista o cuadro combinado.
Igual al campo utilizado para realizar
la búsqueda
El campo por omisión es de tipo Texto, ya que en él se puede almacenar cualquier carácter. Si
lo que queremos es almacenar bastante texto, debemos elegir el campo tipo Memo. Por otro
lado, cuando vayamos a introducir datos de tipo numérico elegiremos entre Numérico o Texto,
dependiendo si deseamos realizar operaciones matemáticas con ellos o no, respectivamente.
El campo Autonumérico lo podemos utilizar para numerar los registros automáticamente
según los vamos introduciendo en la tabla.
Cuando el campo sólo pueda contener una afirmación o una negación 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 máximo de 4 decimales
y añade 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 cálculo,
una carta, una imagen, un gráfico, etc.
Se recomienda especificar el valor más pequeño posible en la propiedad Tamaño del
campo, pues los tamaños más pequeños pueden procesarse más rápidamente y
requieren menos memoria.
Precaución: Si cambia un valor de Tamaño del campo grande por otro más pequeño
para un campo que ya contiene datos, es posible que pierda información. Por ejemplo,
si un campo de tipo Texto tiene el valor 255 en Tamaño del campo y lo cambia por
50, los datos que se extiendan más allá de los 50 primeros caracteres se perderán.
Si los datos de un campo de tipo Numérico no caben con un nuevo valor de Tamaño
del campo, los números fraccionarios se pueden redondear, o pueden dar el valor
Nulo. Por ejemplo, si cambia el tamaño de campo de Simple a Entero, los valores
fraccionarios se redondearán al número entero más cercano, y los superiores a 32.767
o inferiores a -32.768 serán reemplazados por valores nulos.
No es posible deshacer los cambios en los datos provocados por una modificación de la
propiedad Tamaño del campo después de haberlos guardado en la vista Diseño 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 unívocamente a cada registro de la tabla.
Por ejemplo, en nuestro caso de la gestión de los cursos, las tablas funcionario y curso tienen
un campo clave (DNI y Código curso respectivamente).
11 
Access Avanzado 2003 
En el caso de que no podamos encontrar un campo clave se añade a la tabla un campo de tipo
Autonumérico o bien podemos elegir varios campos como la clave de la tabla.
Estructura de un fichero Access
Como se explica más 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 físicamente en un sólo fichero. Por ello en Access, se identifica
una base de datos con el fichero en el que se almacena. Este fichero tiene la extesión mdb.
Esta estructura de ficheros de Access es propia de esta aplicación. Otros formatos de base de
datos utilizan otros criterios. Por ejemplo los ficheros dBase de Lotus Approach utilizan un
fichero para cada tabla con extensión dbf.
Información: 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 extensión ldb. Este archivo es eliminado
de forma automática al ser cerrada la base de datos. Existe mientras la base de datos
está en uso.
12 
Corpus Ruiz Fernández 
Diseño del proyecto de Base
de Datos
13 
Access Avanzado 2003 
14 
Corpus Ruiz Fernández 
A partir de aquí vamos a ir desarrollando la teoría con un ejercicio práctico –Mi proyecto- que
consistirá en diseñar una base de datos que sea capaz de gestionar las solicitudes de los
Cursos de Formación de la Dirección Provincial.
Empezaremos creando nuestra primera tabla –Localidad- para almacenar el código 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 básicos como clave principal, clave ajena e
integridad referencial e insistiremos en lo importante que es un buen diseño 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 información sobre las
localidades de la provincia de Ciudad Real una vez iniciada una sesión 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 diálogo que aparece se elige la ubicación 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 
Access Avanzado 2003 
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 títulos: 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 títulos, permite crear nuevos objetos
y abrir o visualizar los ya creados.
16 
Corpus Ruiz Fernández 
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 todavía la base de
datos está vacía- y los asistentes para crearlos.
Breve descripción de cada uno de los objetos
Tablas: Principal objeto de la base de datos donde se almacena la información,
estructurada en registros y campos.
Consultas: Permite realizar una operación sobre la base de datos para seleccionar,
modificar, insertar ó borrar registros según un criterio. Las consultas se pueden realizar
sobre una o varias tablas.
Formularios: Es una ventana diseñada para la introducción y edición 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 diseñado. La ventaja frente a la presentación como hoja de datos
es que los campos se presentan de forma más adecuada al usuario, con un diseño que
ayuda a su comprensión, utilizando los controles más adecuados a cada tipo de
información.
Informes: Si el formulario es idóneo para introducir y editar los datos, la mejor forma de
mostrarlos es mediante un informa en una página impresa o su presentación en la pantalla
del ordenador. Access proporciona herramientas para diseñar 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 operación 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 botón.
17 
Access Avanzado 2003 
Módulos: Conjunto de declaraciones y procedimientos de Visual Basic. No se verán en
el curso ya que está dirigido a los programadores.
Páginas: Para crear páginas 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
través de navegadores de Internet. Orientado a programadores para presentar los
formularios vía 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 Diseño que será el método que utilizaremos. Otra forma de crearla
sería haciendo clic sobre el icono . Aparecerá la ventana Diseño 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 descripción para cada campo:
18 
Corpus Ruiz Fernández 
En la parte inferior de cada campo tenemos la ficha General para definir propiedades del
campo como por ejemplo:
Código CP Nombre
Tamaño del campo1 Entero Entero 30
Formato 2 00000 00000
Título 3 Código del pueblo Código 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 Código Postal) eligiéndolo y haciendo clic
en el icono clave principal de la barra de herramientas. A la izquierda del nombre del
campo aparecerá una llave indicándonos 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 hubiéramos asignado clave principal a la tabla, al salir del modo diseño
aparecería un cuadro de diálogo avisándonos de ello y preguntándonos si queremos
que Access cree una. Si decimos que Sí, se añade un campo Autonumérico 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 información a introducir
Antes de crear una base de datos debemos pensar bien el diseño de la misma, pues una vez
creada y con datos introducidos, es más difícil modificarla.
1
Depende del tipo de dato:
Texto: Puede tomar valores entre 0 y 255.
Numérico: Entero, por lo que almacena números del -32768 al 32767.
2
Para personalizar la forma en que los números, 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 búsquedas y ordenamientos en un campo.
19 
Access Avanzado 2003 
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 información por campos, de forma
que cada campo corresponda a una tabla y que la información 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 básico: Una base de
datos que gestiona los cursos de formación de la Dirección 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 información –DNI, nombre y apellidos, nombre de los cursos,
etc… Toda esta información podemos recogerla en dos tablas:
Tabla Funcionario: Con información relativa sobre quienes van a realizar los cursos.
Tabla Curso: Con información relativa a los cursos.
Tipo de relaciones
Las relaciones entre tablas se hacen a través de sus claves principales. La clave principal de la
tabla Funcionario es el DNI y de la tabla Curso el Código 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 sólo un
registro de la otra tabla. Un ejemplo sería la relación entre la tabla Sección y la tabla Jefe,
ya que en una sección sólo puede haber un jefe y cada jefe sólo puede serlo de una
sección.
20 
Corpus Ruiz Fernández 
Uno a varios: Cada registro de una de las tablas está relacionado con uno o varios
registros de la otra tabla. Un ejemplo sería la relación entre la tabla Funcionario y la tabla
Localidad, donde en una localidad pueden vivir uno o más funcionarios y un funcionario
sólo puede vivir en sólo una localidad.
Varios a varios: Cada registro de una tabla está relacionado con uno o más de la otra
tabla y cada registro de ésta con uno o varios registros de la otra.
21 
Access Avanzado 2003 
Por tanto, nuestro ejemplo corresponde a una relación 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:
Relación entre la tabla Localidad y la tabla Funcionario
Esta relación, como vimos, es de uno a varios. Lo que se hace, en este caso, es añadir a la
tabla Funcionario la clave de la tabla Localidad –El Codigo del pueblo ya que, como
sabemos, el Código Postal se repite en algunos pueblos.
Al campo CodigoPueblo de la tabla Funcionario se le llama clave ajena.
Relación entre la tabla Funcionario y la tabla Curso
Dicha relación es de varios a varios. Cuando la relación 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
Código de la tabla Curso). Además, de una solicitud nos interesa, por ejemplo, la fecha de
entrada y la fecha en la que empieza el curso, por lo que podemos añadir dos campos más a la
tabla Solicitud.
Resumen de nuestro supuesto
Al final, las relaciones que se han establecido en nuestro proyecto quedaría así:
22 
Corpus Ruiz Fernández 
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 Solicitud sería la combinación 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 vinculación 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 vinculación 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 leídas 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 Formación, y desde allí vincular la tabla Localidad de la base de datos
Localidad.mdb:
Archivo Obtener datos externos Importar…
23 
Access Avanzado 2003 
Selecciona el archivo Localidad.mdb y pulsa el botón Vincular.
En la ventana Vincular tablas selecciona la tabla Localidad y pulsa el botón 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, añadiendo los campos
siguientes:
24 
Corpus Ruiz Fernández 
Vamos a comentar algunas propiedades de estos campos:
DNI Tamaño del campo: Entero largo, ya que el DNI no contiene decimales y tiene
un tamaño suficiente para almacenar los DNI’s.
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 búsquedas por este campo y
no duplicar valores.
Nombre
Primer apellido
Segundo apellido
Tamaño 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 búsquedas u ordenación por estos campos,
en caso contrario No.
Domicilio Tamaño del campo: Con 35 caracteres tenemos suficiente para el domicilio.
Siempre habrá tiempo para aumentar el tamaño 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 Tamaño del campo: Con Entero tenemos una longitud suficiente para
introducir los posibles valores de este campo.
Formato: 00000, para completar con 0 a la izquierda el número que se introduzca.
Lugares decimales: 0, ya que es un número entero por lo que no contiene
decimales.
Requerido: Sí, para hacer obligatoria la introducción 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
cómo debe combinar la información mediante una relación. En una relación, los campos
relacionados deben ser del mismo tipo de datos pero no es necesario que tengan el mismo
nombre.
Para crear una relación hay que seguir estos pasos:
Hacer clic en Relaciones en la barra de herramientas o Herramientas
Relaciones… en la barra de menús.
Como aún no se ha definido ninguna relación, se mostrará automáticamente el cuadro
de diálogo Mostrar tabla:
25 
Access Avanzado 2003 
Hacer doble clic en las tablas que vamos a relacionar -Funcionario y Localidad- y
cerrar el cuadro de diálogo Mostrar tabla. Aparecerán 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 diálogo Modificar relaciones hay que
comprobar que los campos mostrados en las dos columnas son correctos y pulsar
Crear.
26 
Corpus Ruiz Fernández 
En la ventana de relaciones aparecerá la relación que acabamos de crear:
Nota: Las relaciones entre Funcionario-Solicitud y Solicitud-Curso se proponen
como ejercicio. Quedarían así:
Asimismo, cada una de estas tablas contendrá estos campos:
27 
Access Avanzado 2003 
Integridad referencial
La integridad referencial es un conjunto de reglas de Access que garantizan que las relaciones
entre los registros de tablas relacionadas son válidas y que no se eliminan ni modifican
accidentalmente datos relacionados que satisfacen dicha relación. 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, también indexado (con o
sin duplicados según proceda). Ejemplo: En la relación 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 excepción de que la
relación se establezca entre un campo de tipo Autonumérico y un campo de tipo
Numérico, 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 numérico 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 opción 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 
Corpus Ruiz Fernández 
Actualizar en cascada los campos relacionados en la ventana Modificar relaciones.
29 
Access Avanzado 2003 
Ejercicios
Crear la base de datos Cursos de formación 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 están bien hechas, introducir dos o tres registros en cada
una de las tablas siguiendo este orden:
o Añadir datos algunos funcionarios.
o Añadir distintos tipos de cursos.
o Añadir unas cuantas solicitudes de funcionarios que ya estén mecanizados.
30 
Corpus Ruiz Fernández 
31 
Access Avanzado 2003 
Consultas
32 
Corpus Ruiz Fernández 
33 
Access Avanzado 2003 
Introducción
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 tendrán
efecto sobre las tablas origen de la consulta.
Podemos utilizar una consulta para proporcionar datos a un formulario o informe y presentar
sólo los registros que se han obtenido.
Tipos de consultas
Consultas de selección: Es la más habitual y sencilla. Con este tipo de consulta
podemos:
o Obtener los datos de una o más 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 acción: 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.
Creación de mi primera consulta
Una vez presentadas las solicitudes para los cursos, el personal de Formación junto con los
sindicatos se reúnen para elegir a los funcionarios que van a asistir a los cursos. Por tanto,
necesitamos un campo más en la tabla Solicitud para poder distinguir quién 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 sólo Verdadero o Falso (Sí/No):
34 
Corpus Ruiz Fernández 
¿Cómo 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 resúmenes de los mismos. Dejamos la opción
por defecto que presenta Access. Clic en Siguiente.
35 
Access Avanzado 2003 
Damos un nombre a la consulta –Solicitudes aceptadas- y pulsamos Finalizar.
Elegimos la opción Modificar el diseño de consulta- para que se abra la consulta en
modo diseño desde donde podremos modificarla y añadir las condiciones que debe
cumplir.
El resultado que obtenemos en Access será similar a éste:
La ventana de diseño de consultas tiene dos áreas: La superior -donde aparecen las tablas que
participan en la consulta- y la inferior –rejilla que presenta los campos añadidos 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 sólo las solicitudes
aceptadas.
36 
Corpus Ruiz Fernández 
Para ejecutar la consulta hay que seleccionarla y pulsar el botón 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 más de una tabla
Si miramos el resultado de la consulta anterior, no podemos saber cómo se llama el funcionario
ni el curso al que hace referencia los registros que cumplían los criterios. Access permite hacer
una consulta en la que estén implicados campos pertenecientes a más de una tabla.
Vamos crear otra consulta con los siguientes campos:
Tabla Campos
Solicitud Aceptada y FechaCurso
Funcionario Nombre, Primer apellido y 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 añadir.
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 quedaría así:
37 
Access Avanzado 2003 
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 ratón, podemos modificar la posición de las
tablas para ver mejor la relación 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.
Podríamos seguir añadiendo criterios, como:
Criterio Fórmula
Obtener solicitudes de un año en concreto Año([FechaEntrada])=2007
Obtener solicitudes del año actual Año([FechaEntrada])=Año(Ahora())
Obtener solicitudes del mes actual Año([FechaEntrada])=Año(Ahora()) Y
Mes([FechaEntrada])=Mes(Ahora())
Obtener solicitudes presentadas en un intervalo de
fechas.
>#01/01/2007# Y <#30/06/2007#
38 
Corpus Ruiz Fernández 
Crea un campo calculado con una consulta
Un campo calculado es el resultado de una operación con uno o más 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 Diseño:
Añadimos las tablas que necesitamos para la consulta (Funcionario, Solicitud y
Curso) eligiéndola y pulsando Aceptar.
Añadimos 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
combinación 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 ejecución de la consulta será:
39 
Access Avanzado 2003 
Vamos a utilizar el generador de expresiones para crear la fórmula del campo calculado:
Nos situamos en la celda donde vamos a generar el campo calculado. Botón 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 fórmula es Funcionario.Nombre. Para elegirlo nos situamos en
la tabla Funcionario, elegimos el campo Nombre y hacemos clic en Pegar para añadirlo
a la fórmula.
40 
Corpus Ruiz Fernández 
Añadir el espacio en blanco que viene después del nombre haciendo clic en el símbolo +
del generador de expresiones y escribir “ “. Idem para los espacios siguientes.
Para añadir las campos Primerapellido y Segundoapellido se actúa de forma similar a
cuando añadimos el campo Nombre. Finalizar pulsando el botón Aceptar.
Al final la fórmula quedaría así:
41 
Access Avanzado 2003 
Formularios
42 
Corpus Ruiz Fernández 
43 
Access Avanzado 2003 
Introducción
Los formularios son la parte de la aplicación que va a estar a disposición de los usuarios,
constituyendo el núcleo de la interfaz aplicación-usuario. Por eso es necesario tener un
especial cuidado en su diseño y construcción. 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 información de forma clara y ordenada. Un formulario convenientemente diseñado
acelera la introducción de datos y minimiza los errores de los usuarios.
Los formularios son el tipo de objeto más 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á diseñar según sus necesidades.
Nota: Los formularios pueden estar basados en tablas o en consultas. Son más
eficientes los diseñados a través de consultas.
¿Cómo se construyen?
Los formularios se construyen partiendo de un conjunto de elementos de diseño
independientes denominados controles u objetos de tipo control. Los controles son los
componentes habituales de las ventanas y diálogos de Access y otras aplicaciones Windows.
Un formulario consiste en una ventana en la que se sitúan varios tipos de controles: los que
muestran los datos de las tablas y los que muestran datos estáticos como etiquetas o logotipos,
los que permiten generar acciones, tales como botones que abren otros formularios o imprimen
informes, etc.
Los formularios Access son versátiles: permiten realizar tareas que no son posibles en las
hojas de datos Tabla o Consulta. Es posible validar las entradas en base a información
contenida en otras tablas distintas a la editada. Se pueden crear formularios que incorporen
otros formularios (subformularios). Además, desde un formulario, es posible realizar cálculos
y mostrar totales.
44 
Corpus Ruiz Fernández 
Los controles
Son los objetos que utilizamos para crear los formularios e informes y distribuyen la información
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 cálculo 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 verificación, los botones de
opción o botones de alternar para presentar un conjunto limitado de alternativas que hace
que el usuario sólo tenga que hacer clic en el valor que desee –sólo se puede seleccionar
una opción 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.
Botón alternar, botón de opción y casilla de verificación : Se utilizan
para añadir una nueva opción a un grupo de opciones ya creado o para presentar un campo
booleano (Sí/No) –si el botón 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 añadido al crearlo. También asegura
que la información que se ha introducido en el campo es correcta. Puede tener una o más
columnas.
Cuadro de lista : Idem que el cuadro combinado a diferencia que los valores
aparecen desplegados en todo momento.
Botón de comando : Permite ejecutar una acción con un simple clic como abrir un
formulario, añadir 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 varían al cambiar de registro.
Marco de objeto dependiente : Idem que el anterior pero que varían en cada
registro.
45 
Access Avanzado 2003 
Salto de página : Sólo 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 relación uno a varios.
Línea : Para insertar una línea.
Rectángulo : Para insertar un rectángulo.
Controles más complejos .
Nota: Para añadir 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 diseñar formularios con un formato estándar de una
forma rápida. Puede contener campos de varias tablas o consultas.
Autoformularios: Elabora un formulario sencillo con campos de una sola tabla sin pedir
ninguna información al usuario.
Vista diseño: Para crear formularios desde cero. Sólo 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 añadir o modificar registros en la tabla Funcionario. Basado
en la consulta ConGestionFormulario.
GestionCurso: Para añadir o modificar registros en la tabla Curso. Basado en la
consulta ConGestionCurso.
GestionSolicitud: Para añadir 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 
Corpus Ruiz Fernández 
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.
Creación de formularios mediante el asistente
Es el que más se utiliza, ya que no es tan rígido como los autoformularios ni tan laborioso como
el realizado en Vista diseño. Facilita muchos pasos tediosos y permite una posterior
personalización. Esta forma de creación 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 añadir o modificar registros se añaden
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 añadiendo los campos y guardarla como ConGestionSolicitud.
Una vez creada la consulta, vamos a crear nuestro primer formulario –GestionSolicitud-
utilizando el asistente.
47 
Access Avanzado 2003 
Nota: Si queremos que nuestra base de datos recoja información sobre el número de
horas de cada curso se tendrá que añadir 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 botón para abrir el asistente y seleccionar Asistente para
formularios y clic en Aceptar.
En Tabla/Consultas, seleccionar la consulta antes creada –ConGestionSolicitud- y
añadir todos los campos pulsando y Siguiente.
48 
Corpus Ruiz Fernández 
Elegimos, como forma de distribuir los campos en el formulario, la opción Justificado.
Cualquiera de los estilos a aplicar, por ejemplo Estándar.
Damos el nombre de GestionSolicitud al formulario y activamos la opción de Modificar
el diseño del formulario para ir al modo diseño. Se termina pulsando Finalizar.
49 
Access Avanzado 2003 
Quizás parezca algo difícil de entender lo que vemos en pantalla en el modo diseño del
formulario, pero no es más que el esquema. Básicamente 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 información 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 ratón podrás moverlos a cualquier parte de la zona Detalle y
modificar su posición en la pantalla.
Pie: Para mostrar información como el número de página o la fecha.
Para aumentar el tamaño de la altura de cada una de estas partes hay que situar el puntero del
ratón entre la línea que las divide hasta que el curso del ratón aparezca como . Pulsar
botón izquierdo del ratón y desplazarlo hacia abajo o hacia arriba para darle para aumentra o
disminuir la altura.
50 
Corpus Ruiz Fernández 
Por último, vamos eligiendo los diferentes objetos del formulario y situándolos donde mejor
veamos, así como añadiendo nuevos objetos.
El formulario Solicitud
Lo utilizaremos para visualizar las solicitudes presentadas. Tanto la creación de la consulta –
ConSolicitud- como del formulario son similares a los anteriores. Sólo varía el modo de
presentación y distribución de los campos.
51 
Access Avanzado 2003 
Agregar un campo a un formulario
Puede agregar rápidamente 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 
Corpus Ruiz Fernández 
Sólo hay que arrastrar uno de los campos que aparecen en la lista hasta el formulario o
informe y Access crea automáticamente el control apropiado para mostrar el campo, como
cuadro de texto o cuadro combinado y después 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 añadir no está incluido en la lista de campos es porque no se añadió a la
consulta. Para que aparezca, hay que editar la consulta –ConGestionSolicitud- y añadirlo.
Orden de tabulación
El orden de tabulación 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 añadido al crear la consulta.
Para comprobar si es el correcto, editamos el cuadro de diálogo Orden de tabulación desde el
modo diseño haciendo clic con el botón derecho del ratón 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 sólo lectura
Como se puede observar, los campos con fondo amarillo no pertenecen a la tabla Solicitud
por lo que deberemos de marcarlos como de sólo lectura para evitar modificarlos. Para ello,
hay que poner a Sí en la propiedad Bloqueado y No en la propiedad Activado.
53 
Access Avanzado 2003 
Evitar aprender códigos
Si añadimos un registro directamente desde GestionSolicitud vemos que al introducir el
Código del Curso debemos escribir el código que tiene asignado en el campo Codigo de la
tabla Curso.
Podemos evitar memorizar dichos códigos y facilitar la introducción de datos en ese campo
creando un control de cuadro combinado siguiendo los siguientes pasos:
Desde el modo diseño 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 opción siguiente:
Elegimos la tabla Curso que será la que proporcione los valores para el cuadro
combinado y clic en Siguiente.
54 
Corpus Ruiz Fernández 
Seleccionamos los campos Codigo y Nombre de la tabla Curso para que aparezcan en
el cuadro combinado. El campo Codigo contiene la información a almacenar en el
campo CodigoCurso de la tabla Solicitud y el campo Nombre posee información del
nombre del curso que nos ayudará a elegir el código.
Ordenamos la lista por el campo Nombre.
Podemos ocultar o no la columna clave (campo Codigo). En nuestro caso no la
ocultaremos.
55 
Access Avanzado 2003 
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 acompaña al cuadro combinado –Codigo Curso.
56 
Corpus Ruiz Fernández 
Se borra el cuadro de control Codigo Curso para evitar información duplicada, se diseña a
gusto el cuadro combinado y se coloca en el lugar adecuado.
Que en el modo Vista aparecerá así:
Nota: Para añadir un campo que no esté en la consulta, habrá que editar ésta y añadir
dicho campo a la misma. Por ejemplo, si por error no se hubiera añadido a la consulta
el campo Localidad de la tabla Localidad y fuera necesario presentarla en el
formulario habría que editar la consulta y añadir dicho campo.
57 
Access Avanzado 2003 
Propiedades de un formulario
Para visualizar las propiedades de cualquier objeto hay que situarse en él. Si no aparece un
cuadro de diálogo con sus propiedades hay que hacer clic en el icono o ir a Ver
Propiedades.
Están agrupadas en categorías:
Ficha formato: Presenta características sobre la apariencia del formulario
o Vista predeterminada: Especifica la presentación 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: Pequeño 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 
Corpus Ruiz Fernández 
Ficha datos: Características sobre la procedencia de los datos, permisos, filtros y
ordenación.
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 condición 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 sólo se podrán 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: Sólo tiene efectos cuando la anterior propiedad está
establecida a Sí. El formulario se abre presentando sólo 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 diálogo 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.
Página activa: Regresamos al primer campo de la página.
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 
Access Avanzado 2003 
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 sería la siguiente:
Formularios ! [GestionSolicitud] ! [Domicilio]
Exportar registros utilizando el Filtro por formulario
Con frecuencia, se producirán situaciones en las que los datos estén 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 cálculo de Excel y después 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 búsqueda utilizando el Filtro por
formulario .
60 
Corpus Ruiz Fernández 
Un filtro por formulario permite establecer condiciones de filtrado algo más complejas
utilizando condiciones o criterios de selección 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 cálculo.
Nota: La combinación de correspondencia desde Word se puede utilizar usando como
origen de los datos el archivo Excel anteriormente exportado.
61 
Access Avanzado 2003 
62 
Corpus Ruiz Fernández 
Ejercicios
Crear un formulario para gestionar los cursos –GestionCurso- y los funcionarios –
GestionFuncionario- que los solicitan basándose en las consultas ConGestionCurso
y ConGestionFuncionario. Establecer el orden de tabulación.
63 
Access Avanzado 2003 
64 
Corpus Ruiz Fernández 
Subformularios
65 
Access Avanzado 2003 
66 
Corpus Ruiz Fernández 
Introducción
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
combinación formulario/subformulario se denomina a menudo formulario jerárquico, formulario
principal/detalle o formulario principal/secundario.
Los subformularios son muy eficaces cuando se desea mostrar datos de tablas o consultas
con una relación 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 relación y los datos de la tabla Solicitud constituyen el lado “varios” de la
relación, ya que cada funcionario puede haber presentado más de una solicitud.
En la imagen, podemos observar que el funcionario Manuel Ruiz Fernández 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 crearán
subformularios basados en consultas, aunque vamos a ver inicialmente cómo crear a
la misma vez formulario y subformulario a partir de tablas.
Repaso de lo hecho hasta ahora
Hasta ahora, hemos diseñado tres formularios con sus correspondientes consultas.
Formulario Descripción Consulta asociada
GestionSolicitud Para añadir o modificar registros de la tabla Solicitud. ConGestionSolicitud
GestionFuncionario Para añadir o modificar registros de la tabla Funcionario. ConGestionFuncionario
GestionCurso Para añadir o modifica registros de la tabla Curso ConGestionCurso
Solicitud Para visualizar registros de la tabla Solicitud ConSolicitud
67 
Access Avanzado 2003 
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á información 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 Código Postal y Localidad
Solicitud DNI, Fecha del curso, número de horas y Aceptada
Curso Nombre del curso
Desde el asistente para formularios, añadir 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 
Corpus Ruiz Fernández 
Elegir Tabular como distribución a aplicar al subformulario para así poderle añadir
también controles como botones.
Indicar el título para el formulario –Formulario ejemplo- como para el subformulario –
Subformulario Ejemplo.
Diseñar el formulario principal y el subformulario y distribuir los campos a nuestro gusto
y establecer el orden de tabulación
Establecer como de sólo 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 
Access Avanzado 2003 
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 relación 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 información la tenemos repetida en
el formulario principal.
Consulta del formulario principal: ConFuncionario
A esta consulta la llamaremos ConFuncionario y será idéntica que la consulta
ConGestionFuncionario que ya hemos construido. Por tanto, por no partir desde el inicio,
podemos copiarla y después darle su nombre siguiendo estos pasos:
Ir al objeto consultas, hacer clic con el botón derecho en ConGestionFuncionario y
elegir copiar.
70 
Corpus Ruiz Fernández 
Botón derecho Pegar. En el cuadro de diálogo dar el nombre a la consulta:
ConFuncionario.
Consulta del subformulario: ConSubCurso
Merece la pena dedicarle tiempo a este primer paso ya que contendrá la información que hay
que presentar, en nuestro caso una relación de los cursos solicitados. Recordemos que las
relaciones entre las tablas del proyecto son las siguientes:
La relación 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 información de la parte varios no tiene por qué ser todos los campos de la tabla Solicitud,
sino la más representativa para nosotros, como la fecha de realización del curso, su duración o
si la solicitud ha sido o no aceptado, y lo principal: ¡Cómo 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 más representativo y descriptivo es éste último.
Otro campo que hay que añadir 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 
Access Avanzado 2003 
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 distribución justificada y clic en Siguiente.
72 
Corpus Ruiz Fernández 
Se elije cualquier formato, por ejemplo estándar, y se le da el nombre de Funcionario.
El diseño del formulario se retoca para que quede más presentable:
El subformulario SubCurso
Abrimos el Asistente para formularios y seguimos estos pasos:
Elegir en Tablas/Consultas la consulta creada anteriormente –ConSubCurso- y añadir
todos los campos que contiene. Pulsar Siguiente.
73 
Access Avanzado 2003 
Como queremos un listado de las solicitudes, elegimos –como forma de ver los datos-
por Solicitud y clic en Siguiente.
Se elige distribución tabular para presentar los registros en filas y clic en Siguiente.
74 
Corpus Ruiz Fernández 
Se le aplica el estilo Estándar y se le da el nombre de SubCurso.
El subformulario tendrá un aspecto similar a este, al ser de distribución tabular. Se utilizará
para visualizar registros por lo que todos sus campos serán de sólo lectura.
Insertar el subformulario en el formulario principal
Con el formulario principal abierto en modo Diseño, 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 
Access Avanzado 2003 
Por último se le da un título, por ejemplo: Cursos Solicitados, y finalizamos haciendo
clic en Finalizar. No hay que confundir el título y el nombre del subformulario.
Para evitar duplicidad de información, eliminamos del subformulario el campo DNI.
Establecemos como de sólo lectura los demás campos del subformulario. Quedará en
modo Vista así:
Nota: A todos los formularios creados se le pueden añadir botones a través de los
cuales se podrán realizar acciones sencillas como añadir o modificar registros, ir a
otros formularios, etc. Veremos cómo se hace cuando tratemos las macros.
Función de nuestros formularios en el proyecto
Formulario Funcionario: Sólo 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 añadir, modificar o eliminar registros –para esas acciones tenemos
el formulario GestionFuncionario. Tiene agregado el subformulario SubCurso, que
76 
Corpus Ruiz Fernández 
lista los cursos pedidos por cada funcionario.
Formulario Curso: Para visualizar datos de los cursos que se han podido solicitar hasta
ahora en la Dirección Provincial –idem que el anterior respecto a las propiedades
Activado y Bloqueado . Se impedirá que desde él se puedan añadir, modificar o
eliminar registros. Tiene agregado el subformulario SubFuncionario.
Subformulario SubCurso: Todos los campos como sólo lectura y sólo para visualizar los
cursos solicitados por los funcionarios.
Subformulario SubFuncionario: Todos los campos como sólo lectura y sólo para
visualizar los funcionarios que han presentado un determinado curso.
77 
Access Avanzado 2003 
78 
Corpus Ruiz Fernández 
Ejercicios
Crea un formulario -Curso- que visualice información sobre los cursos que se pueden
impartir en la Dirección 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 
Access Avanzado 2003 
80 
Corpus Ruiz Fernández 
Macros
81 
Access Avanzado 2003 
82 
Corpus Ruiz Fernández 
Introducción
Las macros son un método sencillo para realizar una o más tareas básicas 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 botón de comando.
Una macro puede ser una macro compuesta de una secuencia de acciones, o puede ser un
grupo de macros. También se puede usar una expresión condicional para determinar si se
llevará a cabo una acción 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á automáticamente 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, sólo se visualizan las columnas Acción y Comentario. Para mostrar Nombre de
macro y Condición vaya al menú ver.
Nombre de macro: Identifica el nombre de la macro dentro de un grupo de macros.
Condición: Expresión condicional para determinar la ejecución o no de una acción.
Acción: Se utiliza para especificar una acción que desea que ejecute una macro. Para
especificar la acción de una macro haga clic en la celda acción y seleccione una acción de
la lista.
Comentario: Texto para describir lo que hace la acción.
Al seleccionar una acción aparece en la parte inferior sus. Por ejemplo, al elegir la acción
AbrirFormulario los argumentos que aparecen son los siguientes:
Crear botones en Funcionario
Abrir, en modo diseño, el formulario Funcionario.
Visualizar Cuadro de herramientas y desactivar asistente para controles .
Selecciona el control .
83 
Access Avanzado 2003 
Clic en el lugar del formulario donde se desea crear el botón.
Darle nombre y tamaño al botón.
Mostrar las propiedades del botón y asociar una macro al evento Al hacer clic –por ejemplo,
Funcionario.Añadir que añade un registro de la tabla Funcionario.
Crear los demás botones siguiendo los mismos pasos anteriores.
El formulario principal quedaría diseñado así:
Al pulsa los botones se ejecuta la macro asociada.
84 
Corpus Ruiz Fernández 
Crear un macro
Podríamos definir una macro que abra el formulario GestionFuncionario, para agregar un nuevo
registro, cuando el usuario haga clic en un botón.
Es fácil, tienes que ir al objeto Macro de la base de datos y hacer clic en . Se abrirá la
ventana de diseño desde la que se irán seleccionando las acciones que deberán ejecutarse de
entre las existentes en la lista desplegable:
En la columna comentario se describe para qué sirve la acción.
Una vez elegida la acción, 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, diseño, vista
preliminar, etc.)
Nombre del filtro a aplicar al abrir el formulario.
Condición: Expresión SQL que se ejecuta para seleccionar los registros que cumplen la
condición. 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 Sólo 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 
Access Avanzado 2003 
o Icono: Abre el formulario y lo minimiza.
o Diálogo: Formulario modal (debe de cerrar el formulario para poder hacer clic
fuera de él) y emergente (permanece por encima de otras ventanas de la
aplicación.)
Se pueden añadir tantas acciones como queramos pero debiéndolas 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 están relacionadas.
Se crearán 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 estarán 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 AñadirRegistro
del grupo GestionFuncionario tendrá la referencia GestionFuncionairo.AñadirRegistro.
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 acción de la columna acción 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.
Botón Macro asociada Acciones
Modificar Modificar Abre el formulario GestionFuncionario para añadir un
nuevo registro.
Añadir Añadir Abre el formulario GestionFuncionario para modificar un
registro.
Buscar Buscar Realiza búsquedas por el DNI.
86 
Corpus Ruiz Fernández 
Macro Añadir
El formulario que utilizamos para añadir nuevos funcionarios es GestionFuncionario. Por
tanto, la acción que se ejecutará al hacer clic en el botón será abrir el formulario con
estos argumentos:
Modo de datos = Agregar porque vamos a añadir un registro
Modo de la ventana = Diálogo para que se abra el formulario no pueda desplazarse a
otro objeto hasta que no se cierre y la información que se muestre permanezca encima de las
demás ventanas de Access.
Macro Modificar
Para modificar registros de la tabla Funcionario también usaremos el formulario
GesitonFuncionario. La acción a ejecutar una vez se haga clic en consistirá en abrir
el formulario especificando estos argumentos:
87 
Access Avanzado 2003 
Modo de datos = Modificar ya que modificaremos un registro.
Condición 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 búsquedas 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 acción deberá evaluarse
una expresión condicional. Si la condición es verdadera, Access lleva a cabo la acción en esa
fila y cualquiera de las acciones inmediatamente posteriores que vayan precedidas por puntos
suspensivos (…) en la columna Condición.
Habrá que añadir al formulario Funcionario otro botón más para que lleve a cabo estas
acciones y un control de texto independiente –no vinculado a ningún campo de las
tablas y que llamaremos VarBuscar- donde introduciremos el DNI a buscar.
El formulario Funcionario quedará así:
88 
Corpus Ruiz Fernández 
Para saber si en la búsqueda se ha encontrado o no registros se utiliza la función Dcont que
devuelve el número de registros hallados:
Si es igual a 0 No se ha hallado ningún registro y por tanto se presenta un mensaje
advirtiéndoselo al usuario.
Si es distinto de 0 Se presenta el registro hallado. Sólo se pueden encontrar como
máximo un registro ya que el DNI es clave principal de la tabla Funcionario y su valor –
recordémoslo- es único.
La sintaxis de la función DCont:
DCont(expr; dominio [; criterios] )
exp: Expresión 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. Expresión de cadena utilizada para restringir el intervalo de los
datos en los que se ejecuta la función DCont.
[DNI] = [Formularios]![Funcionario]![VarBuscar]
Por tanto, las dos posibles condiciones son:
Si se ha encontrado algún registro:
DCont("[DNI]";"Funcionario";"[DNI] = [Formularios]![Funcionario]![VarBuscar]")>0
Por lo que entonces se ejecutará la acción AplicarFiltro con la condición [DNI] Como
[Formularios]![Funcionario]![VarBuscar]
Que equivale a lo mismo que si hubiéramos aplicado un filtro por formulario y en el
campo DNI hubiéramos introducido el valor que se ha introducido en el control
independiente VarBuscar.
Si no se ha encontrado ningún registro:
DCont("[DNI]";"Funcionario";"[DNI] = [Formularios]![Funcionario]![VarBuscar]")=0
La acción a ejecutar será el mostrar todos los registros y mostrar un cuadro de
mensaje informando de que no se ha encontrado ningún registro.
89 
Access Avanzado 2003 
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 añadir, modificar y buscar registros de la tabla
Funcionario.
.
El grupo Curso
Las acciones a llevar a cabo serán añadir y modificar registros. Se deja como ejercicio, sólo
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 exportación de registros para
combinarlos con un documento Word y la de imprimir directamente escritos de Word -
ahorrándose la tarea de la exportación- mediante código de Visual Basic.
Nota: Además, este grupo tiene las macros añadir, modificar y buscar, vistas en el
grupo Funcionario así que no vamos a entrar en más detalles.
90 
Corpus Ruiz Fernández 
Macro Exportar
Ojo, antes de pulsar en el botón que ejecuta la macro hay que asegurarse de que se ha
aplicado un filtro por formulario para que sólo se exporten los registros que cumplan las
condiciones excepto cuando queremos hacer una exportación de todos los registros.
Para aplicar el filtro por formulario hay que hacer clic en e introducir las condiciones de
búsqueda en el formulario.
Opciones cuando se filtra por formulario:
Para realizar la exportación de registros se utiliza la acción SalidaHacia.
El tipo de objeto desde el que vamos a realizar la exportación 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 ningún directorio lo almacena en Mis Documentos.
91 
Access Avanzado 2003 
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 opción a la fusión es hacerlo con
Código Visual Basic:
Crear una plantilla en Microsoft Word en la que insertaremos el texto normal de un
escrito más 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 (extensión 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 
Corpus Ruiz Fernández 
Desde el evento Al hacer clic del botón 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 
Access Avanzado 2003 
Resumen
El grupo Solicitud contiene cuatro macros –para añadir, modificar, buscar y exportar registros.
El grupo Comun
En este grupo agregaremos las macros que van a ser comunes a dos o más 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.
También se incluirá la macro Aceptar para confirmar las variaciones que se hagan al añadir o
modificar registros.
Macro Funcionario
Macro Curso
94 
Corpus Ruiz Fernández 
Macro Solicitud
Macro Aceptar
Al estar en blanco el Tipo de objeto se cierra la ventana activa.
95 
Access Avanzado 2003 
96 
Corpus Ruiz Fernández 
Formulario Curso
97 
Access Avanzado 2003 
Formulario Funcionario
98 
Corpus Ruiz Fernández 
Formulario Solicitud
99 
Access Avanzado 2003 
Formulario GestionCurso
100 
Corpus Ruiz Fernández 
Formulario GestionFuncionario
101 
Access Avanzado 2003 
Formulario GestionSolicitud
102 
Corpus Ruiz Fernández 
Formulario SubCurso
103 
Access Avanzado 2003 
Formulario SubFuncionario
104 
Corpus Ruiz Fernández 
ANEXO DE LAS ACCIONES MÁS UTILIZADAS
Acción Descripción
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 acción
BuscarRegistro.
CancelarEvento Cancela el evento que ejecutó la macro que contiene esta acción.
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 están 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 ningún control.
SalidaHacia Exporta los registros al formato especificado –Excel, Word, texto, html…
Salir Cierra Access.
105 
Access Avanzado 2003 
106 
Corpus Ruiz Fernández 
Ejercicios
Crear las macros para los formularios Curso y GestionCurso.
107 
Access Avanzado 2003 
108 
Corpus Ruiz Fernández 
INFORMES
109 
Access Avanzado 2003 
110 
Corpus Ruiz Fernández 
Introducción
El objeto informe se emplea para ofrecer una presentación personalizada de la información
pudiendo ordenarla, agruparla y resumirla en la forma deseada. También permite generar
totales de los datos numéricos. Se utilizan para sacar datos de una base de datos e imprimirla.
Un informe no es nada más que una forma elegante y dinámica de presentar una tabla o
consulta e imprimirlas. Tanto en su estructura como en su funcionamiento son prácticamente
idénticos a los formularios, aunque a través de informes no podemos modificar datos, sólo
presentarlos.
Formas de crear un informe
Asistente para informes o etiquetas: Permite diseñar informes con un formato
estándar de una forma rápida, ya que realizan automáticamente todo el trabajo básico.
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
información al usuario.
Vista diseño: 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 diseños 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 algún
curso, por lo que nos basaremos en la consulta ConFuncionario.
111 
Access Avanzado 2003 
Cuando hay campos de más de una tabla en la consulta, Access nos da la opción de presentar
los datos por una de las tablas. En nuestro caso elegiremos por Funcionario.
Access nos da la opción de agrupar y ordenar los registros que se van a presentar en el
informe por uno o varios campos. Vamos a agruparlos por pueblos.
También tenemos la opción de calcular resúmenes de alguno de los campos que van a
presentarse en el informe –optamos por calcula la suma del campo Sueldo- pulsando el botón
112 
Corpus Ruiz Fernández 
Se finaliza eligiendo la distribución, estilo y nombre a dar al formulario –en pasos, corporativa
y Funcionario respectivamente.
Nota: Podríamos haber creado un campo calculado en la consulta ConFuncionario
para presentar los apellidos y el nombre y haber añadido al informe éste campo y no
los del nombre y apellidos.
Para personalizar el informe hay que situarse en modo Diseño. Aparecerá una ventana similar
a ésta:
113 
Access Avanzado 2003 
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 información que normalmente aparecería en una página de
portada, como un logotipo o un título y una fecha. El encabezado del informe se imprime
antes del encabezado de página. 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 función Suma en el encabezado del informe, se calcula la suma para todo el
informe.
Encabezado de página: Se imprime al principio de cada página. Se utiliza un
encabezado de página, por ejemplo, para repetir el título del informe en todas las páginas.
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 estén 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 función Suma
en el encabezado de grupo, la suma corresponde al grupo actual.
Detalle: Sección en la que aparecen los registros del origen del informe, que pueden
ser más 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 información de resumen de sus correspondientes grupos.
Pié de página: Se imprime al final de cada página. Los pies de página se utilizan para
imprimir números de página o información relativa a la página.
114 
Curso access
Curso access
Curso access
Curso access
Curso access
Curso access
Curso access
Curso access
Curso access
Curso access
Curso access
Curso access

Más contenido relacionado

La actualidad más candente

Português 2011
Português   2011Português   2011
Português 2011J M
 
Parametrizaciones basicas de Sap
Parametrizaciones basicas de SapParametrizaciones basicas de Sap
Parametrizaciones basicas de Sapgiancarlo
 
Guía de aprendizaje de Excel 2007
Guía de aprendizaje de Excel 2007Guía de aprendizaje de Excel 2007
Guía de aprendizaje de Excel 2007Alfredo Vela Zancada
 
Tutoria de computacion basica
Tutoria de computacion basicaTutoria de computacion basica
Tutoria de computacion basicaYuri21an
 
Português 2008
Português   2008Português   2008
Português 2008J M
 
Como crear dinero roman y packer
Como crear dinero   roman y packerComo crear dinero   roman y packer
Como crear dinero roman y packerLeandro Mocha
 
Crystal reports xi manual zona crystal
Crystal reports xi   manual zona crystalCrystal reports xi   manual zona crystal
Crystal reports xi manual zona crystaljhonnyelibaldo
 
Ley del Estatuto de los Trabajadores (ERE - Outplacement en España)
Ley del Estatuto de los Trabajadores (ERE - Outplacement en España)Ley del Estatuto de los Trabajadores (ERE - Outplacement en España)
Ley del Estatuto de los Trabajadores (ERE - Outplacement en España)Luis Prado
 
La ruta digital
La ruta digitalLa ruta digital
La ruta digitalWebMD
 

La actualidad más candente (16)

Manual power point
Manual power pointManual power point
Manual power point
 
Dulkin
DulkinDulkin
Dulkin
 
Dulkin
DulkinDulkin
Dulkin
 
Português 2011
Português   2011Português   2011
Português 2011
 
Parametrizaciones basicas de Sap
Parametrizaciones basicas de SapParametrizaciones basicas de Sap
Parametrizaciones basicas de Sap
 
Guía de aprendizaje Word 2007
Guía de aprendizaje Word 2007Guía de aprendizaje Word 2007
Guía de aprendizaje Word 2007
 
Manual de PowerPoint 2007
Manual de PowerPoint 2007Manual de PowerPoint 2007
Manual de PowerPoint 2007
 
Guía de aprendizaje de Excel 2007
Guía de aprendizaje de Excel 2007Guía de aprendizaje de Excel 2007
Guía de aprendizaje de Excel 2007
 
Tutoria de computacion basica
Tutoria de computacion basicaTutoria de computacion basica
Tutoria de computacion basica
 
Português 2008
Português   2008Português   2008
Português 2008
 
TUTORIAL COMPUTACION BASICA II
TUTORIAL COMPUTACION BASICA IITUTORIAL COMPUTACION BASICA II
TUTORIAL COMPUTACION BASICA II
 
Manual cobol
Manual cobolManual cobol
Manual cobol
 
Como crear dinero roman y packer
Como crear dinero   roman y packerComo crear dinero   roman y packer
Como crear dinero roman y packer
 
Crystal reports xi manual zona crystal
Crystal reports xi   manual zona crystalCrystal reports xi   manual zona crystal
Crystal reports xi manual zona crystal
 
Ley del Estatuto de los Trabajadores (ERE - Outplacement en España)
Ley del Estatuto de los Trabajadores (ERE - Outplacement en España)Ley del Estatuto de los Trabajadores (ERE - Outplacement en España)
Ley del Estatuto de los Trabajadores (ERE - Outplacement en España)
 
La ruta digital
La ruta digitalLa ruta digital
La ruta digital
 

Destacado

Consultas en Access 2003
Consultas en Access 2003Consultas en Access 2003
Consultas en Access 2003Mar Gamero
 
Gregory Coltbert Museo Nomada
Gregory Coltbert Museo NomadaGregory Coltbert Museo Nomada
Gregory Coltbert Museo NomadaPedro Villa Casas
 
Bluetrace briefing-rta-9july-2012
Bluetrace briefing-rta-9july-2012Bluetrace briefing-rta-9july-2012
Bluetrace briefing-rta-9july-2012CarrierDigit
 
Response analysis in food security crises: a 'road map'
Response analysis in food security crises: a 'road map'Response analysis in food security crises: a 'road map'
Response analysis in food security crises: a 'road map'ALNAP
 
Pets businesscards
Pets businesscardsPets businesscards
Pets businesscardslindy23
 
10598 formato de_evaluación_-_alumno
10598 formato de_evaluación_-_alumno10598 formato de_evaluación_-_alumno
10598 formato de_evaluación_-_alumnoPriscila Bustamante
 
Catch-up Industrialization and Growth Trajectory of Science and Technology: ...
Catch-up Industrialization and Growth Trajectory of Science and  Technology: ...Catch-up Industrialization and Growth Trajectory of Science and  Technology: ...
Catch-up Industrialization and Growth Trajectory of Science and Technology: ...iBoP Asia
 
Valor Absoluto Sicav: Rentabilidad y Ratios a Octubre10
Valor Absoluto Sicav: Rentabilidad y Ratios a Octubre10Valor Absoluto Sicav: Rentabilidad y Ratios a Octubre10
Valor Absoluto Sicav: Rentabilidad y Ratios a Octubre10Luis Bononato
 
Intelligent Trending Content scales Engagement within Social Display Ads
Intelligent Trending Content scales Engagement within Social Display AdsIntelligent Trending Content scales Engagement within Social Display Ads
Intelligent Trending Content scales Engagement within Social Display AdsInfini Graph
 
Programación auditorio nacional ene 2013
Programación auditorio nacional ene 2013Programación auditorio nacional ene 2013
Programación auditorio nacional ene 2013juventudaytomadrid
 
Análisis del diseño de un reactor modular de alta temperatura enfriado por gas
Análisis del diseño de un reactor modular de alta temperatura enfriado por gasAnálisis del diseño de un reactor modular de alta temperatura enfriado por gas
Análisis del diseño de un reactor modular de alta temperatura enfriado por gasAcademia de Ingeniería de México
 
Fotos Aquí fem pinya 2013
Fotos Aquí fem pinya 2013Fotos Aquí fem pinya 2013
Fotos Aquí fem pinya 2013cdberga
 
Sales, Marketing and Operations Golf Clubs and Resorts | Antonio Gomez Cava
Sales, Marketing and Operations Golf Clubs and Resorts | Antonio Gomez CavaSales, Marketing and Operations Golf Clubs and Resorts | Antonio Gomez Cava
Sales, Marketing and Operations Golf Clubs and Resorts | Antonio Gomez CavaAntonio Gomez Cava
 
Pp il·lusions perceptives
Pp il·lusions perceptivesPp il·lusions perceptives
Pp il·lusions perceptivesNimChimsky
 

Destacado (20)

Separata access 2013
Separata access 2013Separata access 2013
Separata access 2013
 
Consultas en Access 2003
Consultas en Access 2003Consultas en Access 2003
Consultas en Access 2003
 
Gregory Coltbert Museo Nomada
Gregory Coltbert Museo NomadaGregory Coltbert Museo Nomada
Gregory Coltbert Museo Nomada
 
Bluetrace briefing-rta-9july-2012
Bluetrace briefing-rta-9july-2012Bluetrace briefing-rta-9july-2012
Bluetrace briefing-rta-9july-2012
 
Response analysis in food security crises: a 'road map'
Response analysis in food security crises: a 'road map'Response analysis in food security crises: a 'road map'
Response analysis in food security crises: a 'road map'
 
Pets businesscards
Pets businesscardsPets businesscards
Pets businesscards
 
Pizza
Pizza Pizza
Pizza
 
10598 formato de_evaluación_-_alumno
10598 formato de_evaluación_-_alumno10598 formato de_evaluación_-_alumno
10598 formato de_evaluación_-_alumno
 
Catch-up Industrialization and Growth Trajectory of Science and Technology: ...
Catch-up Industrialization and Growth Trajectory of Science and  Technology: ...Catch-up Industrialization and Growth Trajectory of Science and  Technology: ...
Catch-up Industrialization and Growth Trajectory of Science and Technology: ...
 
Valor Absoluto Sicav: Rentabilidad y Ratios a Octubre10
Valor Absoluto Sicav: Rentabilidad y Ratios a Octubre10Valor Absoluto Sicav: Rentabilidad y Ratios a Octubre10
Valor Absoluto Sicav: Rentabilidad y Ratios a Octubre10
 
Fase Planificación
Fase PlanificaciónFase Planificación
Fase Planificación
 
Intelligent Trending Content scales Engagement within Social Display Ads
Intelligent Trending Content scales Engagement within Social Display AdsIntelligent Trending Content scales Engagement within Social Display Ads
Intelligent Trending Content scales Engagement within Social Display Ads
 
Programación auditorio nacional ene 2013
Programación auditorio nacional ene 2013Programación auditorio nacional ene 2013
Programación auditorio nacional ene 2013
 
Conexion21 19Abril 14
Conexion21 19Abril 14Conexion21 19Abril 14
Conexion21 19Abril 14
 
Masterclass de Spotify en el Master en Dirección de Marketing Digital y Comun...
Masterclass de Spotify en el Master en Dirección de Marketing Digital y Comun...Masterclass de Spotify en el Master en Dirección de Marketing Digital y Comun...
Masterclass de Spotify en el Master en Dirección de Marketing Digital y Comun...
 
Touchpoints v3 with inv.
Touchpoints v3 with inv.Touchpoints v3 with inv.
Touchpoints v3 with inv.
 
Análisis del diseño de un reactor modular de alta temperatura enfriado por gas
Análisis del diseño de un reactor modular de alta temperatura enfriado por gasAnálisis del diseño de un reactor modular de alta temperatura enfriado por gas
Análisis del diseño de un reactor modular de alta temperatura enfriado por gas
 
Fotos Aquí fem pinya 2013
Fotos Aquí fem pinya 2013Fotos Aquí fem pinya 2013
Fotos Aquí fem pinya 2013
 
Sales, Marketing and Operations Golf Clubs and Resorts | Antonio Gomez Cava
Sales, Marketing and Operations Golf Clubs and Resorts | Antonio Gomez CavaSales, Marketing and Operations Golf Clubs and Resorts | Antonio Gomez Cava
Sales, Marketing and Operations Golf Clubs and Resorts | Antonio Gomez Cava
 
Pp il·lusions perceptives
Pp il·lusions perceptivesPp il·lusions perceptives
Pp il·lusions perceptives
 

Similar a Curso access

Similar a Curso access (20)

Manual de inf para negocios
Manual de inf para negociosManual de inf para negocios
Manual de inf para negocios
 
Teacher manual spanish
Teacher manual spanishTeacher manual spanish
Teacher manual spanish
 
Creacion mapasconceptuales
Creacion mapasconceptualesCreacion mapasconceptuales
Creacion mapasconceptuales
 
Enseñanza mesclada
Enseñanza mescladaEnseñanza mesclada
Enseñanza mesclada
 
Ms project
Ms projectMs project
Ms project
 
Informe de Tesis; Alumno: Francisco Campillay Soza, Ingeniero en Informática
Informe de Tesis; Alumno: Francisco Campillay Soza, Ingeniero en InformáticaInforme de Tesis; Alumno: Francisco Campillay Soza, Ingeniero en Informática
Informe de Tesis; Alumno: Francisco Campillay Soza, Ingeniero en Informática
 
Metodologias[1]
Metodologias[1]Metodologias[1]
Metodologias[1]
 
Apuntes sobre PowerPoint 2007
Apuntes sobre PowerPoint 2007Apuntes sobre PowerPoint 2007
Apuntes sobre PowerPoint 2007
 
M word2003
M word2003M word2003
M word2003
 
Elastix a ritmo de merengue v-1-3
Elastix a ritmo de merengue v-1-3Elastix a ritmo de merengue v-1-3
Elastix a ritmo de merengue v-1-3
 
Informática y tics
Informática y ticsInformática y tics
Informática y tics
 
Informe consolidado fase analisis v2014 03-02
Informe consolidado fase analisis v2014 03-02Informe consolidado fase analisis v2014 03-02
Informe consolidado fase analisis v2014 03-02
 
Manual usuario publisher
Manual usuario publisherManual usuario publisher
Manual usuario publisher
 
Manual usuario AdServer
Manual usuario AdServerManual usuario AdServer
Manual usuario AdServer
 
Manual de office publisher
Manual de office publisherManual de office publisher
Manual de office publisher
 
Postgres tutorial
Postgres tutorial Postgres tutorial
Postgres tutorial
 
Avanzado excel
Avanzado excelAvanzado excel
Avanzado excel
 
Microsoft wordxp
Microsoft wordxpMicrosoft wordxp
Microsoft wordxp
 
Microsoft wordxp
Microsoft wordxpMicrosoft wordxp
Microsoft wordxp
 
Microsoft wordxp
Microsoft wordxpMicrosoft wordxp
Microsoft wordxp
 

Más de formacionDY

Libro 1 orientaciones educativas
Libro 1 orientaciones educativasLibro 1 orientaciones educativas
Libro 1 orientaciones educativasformacionDY
 
Planificación Educativa Sub Sistema Educación Básica
Planificación Educativa Sub Sistema Educación BásicaPlanificación Educativa Sub Sistema Educación Básica
Planificación Educativa Sub Sistema Educación BásicaformacionDY
 
Promocion de la salud
Promocion de la saludPromocion de la salud
Promocion de la saludformacionDY
 
Presentación colectivo formación permanente
Presentación colectivo formación permanentePresentación colectivo formación permanente
Presentación colectivo formación permanenteformacionDY
 
Presentación colectivo formación permanente
Presentación colectivo formación permanentePresentación colectivo formación permanente
Presentación colectivo formación permanenteformacionDY
 
Presentación colectivo formación permanente
Presentación colectivo formación permanentePresentación colectivo formación permanente
Presentación colectivo formación permanenteformacionDY
 

Más de formacionDY (7)

Libro de texto
Libro de textoLibro de texto
Libro de texto
 
Libro 1 orientaciones educativas
Libro 1 orientaciones educativasLibro 1 orientaciones educativas
Libro 1 orientaciones educativas
 
Planificación Educativa Sub Sistema Educación Básica
Planificación Educativa Sub Sistema Educación BásicaPlanificación Educativa Sub Sistema Educación Básica
Planificación Educativa Sub Sistema Educación Básica
 
Promocion de la salud
Promocion de la saludPromocion de la salud
Promocion de la salud
 
Presentación colectivo formación permanente
Presentación colectivo formación permanentePresentación colectivo formación permanente
Presentación colectivo formación permanente
 
Presentación colectivo formación permanente
Presentación colectivo formación permanentePresentación colectivo formación permanente
Presentación colectivo formación permanente
 
Presentación colectivo formación permanente
Presentación colectivo formación permanentePresentación colectivo formación permanente
Presentación colectivo formación permanente
 

Curso access

  • 1. Microsoft Access Avanzado Corpus Ruiz Fernández Coordinación de Informática DIRECCIÓN PROVINCIAL DE LA TGSS DE CIUDAD REAL ------------------------------------------------------------------------------------ Curso del 4 al 5 de julio de 2007
  • 3. Corpus Ruiz Fernández  Índice Introducción................................................................................................................................... 7 Access es un Sistema Gestor de Base de Datos (SGBD)........................................................ 9 Concepto de tablas, campos y registros ................................................................................. 10 Tipos de datos y su aplicación................................................................................................. 10 Campo clave............................................................................................................................ 11 Estructura de un fichero Access.............................................................................................. 12 Diseño del proyecto de Base de Datos....................................................................................... 13 Mi primera base de datos ........................................................................................................ 15 Ventana de Localidad.mdb .................................................................................................. 16 Breve descripción 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 información a introducir........................................................................... 19 Tablas y campos necesarios................................................................................................ 20 Tipo de relaciones................................................................................................................ 20 Relación entre la tabla Localidad y la tabla Funcionario ..................................................... 22 Relación 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 
  • 4. Access Avanzado 2003  Introducción ............................................................................................................................. 34 Tipos de consultas................................................................................................................... 34 Creación de mi primera consulta............................................................................................. 34 Consulta en más de una tabla................................................................................................. 37 Crea un campo calculado con una consulta............................................................................ 39 Formularios.................................................................................................................................. 42 Introducción ............................................................................................................................. 44 ¿Cómo se construyen?............................................................................................................ 44 Los controles............................................................................................................................ 45 Formas de crear formularios.................................................................................................... 46 Nombre que se le van a dar a los formularios......................................................................... 46 Creación de formularios mediante el asistente ....................................................................... 47 El formulario GestionSolicitud.................................................................................................. 47 El formulario Solicitud.............................................................................................................. 51 Agregar un campo a un formulario ...................................................................................... 52 Orden de tabulación............................................................................................................. 53 Establecer controles como de sólo lectura .......................................................................... 53 Evitar aprender códigos ....................................................................................................... 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 Introducción ............................................................................................................................. 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 
  • 5. Corpus Ruiz Fernández  El subformulario SubCurso...................................................................................................... 73 Insertar el subformulario en el formulario principal.................................................................. 75 Función de nuestros formularios en el proyecto...................................................................... 76 Ejercicios.................................................................................................................................. 79 Macros......................................................................................................................................... 81 Introducción ............................................................................................................................. 83 Crear botones en Funcionario.............................................................................................. 83 Crear un macro........................................................................................................................ 85 Grupo de macros..................................................................................................................... 86 El grupo Funcionario................................................................................................................ 86 Macro Añadir........................................................................................................................ 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 
  • 6. Access Avanzado 2003  Formulario SubCurso............................................................................................................. 103 Formulario SubFuncionario ................................................................................................... 104 ANEXO DE LAS ACCIONES MÁS UTILIZADAS.................................................................. 105 Ejercicios................................................................................................................................ 107 INFORMES................................................................................................................................ 109 Introducción ........................................................................................................................... 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 ordenación........................................................... 116 El informe Listado Cursos...................................................................................................... 116 Filtrado de datos en un informe............................................................................................. 118 El informe Listado funcionarios ............................................................................................. 120 Forzar nueva página en cada encabezado de grupo ........................................................ 121 Filtrar los datos del informe desde el formulario Solicitud ................................................. 122 Creación de etiquetas postales ............................................................................................. 122 Creación de un formulario desde el panel Impresoras y faxes.......................................... 123 Acuses de recibo para impresoras matriciales .................................................................. 123 Acuses de recibo para impresoras láser............................................................................ 126 6 
  • 9. Corpus Ruiz Fernández  Microsoft Access es un programa para la gestión de información que diseña las estructuras para almacenar la información y los medios para su introducción y explotación. Para explicar este propósito 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 más difíciles de gestionar) para pasar a diseñar bases de datos compuestas de varias tablas entre las que existe una relación (estructura relacional). La versión 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 teoría iremos creando una aplicación que al final sea capaz de gestionar las solicitudes de los Cursos de Formación. El curso está dirigido a todos los trabajadores de la Dirección 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 más alto. Access es un Sistema Gestor de Base de Datos (SGBD) Un software específico dedicado a servir de intermediario entre la base de datos, el usuario y las aplicaciones que la utilizan y gestiona información se denomina un sistema de gestión de bases de datos SGBD ó DBMS (Data Base Management System). La estructura básica de esta información son tablas. Para una mejor gestión de la información y para reducir el número 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 números del DNI en cada curso. El número de DNI sirve para establecer una relación con la tabla que contiene el nombre y los apellidos. Debido a este carácter relacional, Access es un sistema de gestión de bases de datos relacional SGBDR ó RDBMS (Relational Data Base Management System). Si se hubiese utilizado sólo una tabla, al añadir los registros hubiera sido necesario introducir varias veces el nombre y apellido de la persona que lo ha solicitado, almacenándose información redundante, pudiendo cometerse errores como se muestra en la siguiente tabla. 9 
  • 10. Access Avanzado 2003  Concepto de tablas, campos y registros La información se almacena en tablas. Cada una de ellas tiene que tener un nombre único en la Base de Datos y están compuestas por filas (llamadas registros) y columnas (llamadas campos). En el ejemplo anterior, la base de datos está formada por dos tablas: Funcionario: Contiene información sobre los funcionarios, consta de 2 campos (DNI y Nombre y apellidos) y 1 registro. Curso: Contiene información sobre los cursos, consta de 3 campos (Código 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 información. Ejemplos de base de datos son: Base de datos para la gestión de los cursos de nuestra Dirección 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 aplicación En Access se usa la propiedad Tipos de datos para especificar el tipo de datos almacenado en un campo de una tabla. Cada campo sólo puede contener datos de un tipo. Dicha propiedad puede tener los valores siguientes: Tipo Pueden contener… Tamaño Texto Caracteres alfanuméricos –cualquier carácter del teclado. Los números no pueden usarse en operaciones aritméticas. El tamaño por defecto es 50 y el máximo 255 Memo Cualquier carácter del teclado y se usa para almacenar grandes cantidades de información. Un ejemplo de este tipo de campo sería un campo de sugerencias o comentarios. Hasta 65.534 caracteres. Numérico Datos numéricos utilizados para cálculos matemáticos. Pueden ser enteros o reales. De diferentes longitudes Fecha/hora Valores de fecha y hora para los años 100 al 9999. 8 bytes Moneda Números enteros o fraccionarios (como máximo de 4 decimales). 8 bytes Autonumérico Número secuencial único que Access asigna cada vez 4 bytes 10 
  • 11. Corpus Ruiz Fernández  que se añade un registro a una tabla. Booleano (Sí/No) Sólo dos valores: Sí o No. 1 bit Objeto OLE Objeto (como documento Word, imágenes…) vinculado o incrustado en una tabla. Hasta 1Gb Hipervínculo Dirección de página web, de correo electrónico o de un archivo en el disco local. 2048 caracteres Asistente para búsquedas Crea un campo que permite elegir un valor de otra tabla o de una lista de valores mediante un cuadro de lista o cuadro combinado. Igual al campo utilizado para realizar la búsqueda El campo por omisión es de tipo Texto, ya que en él se puede almacenar cualquier carácter. Si lo que queremos es almacenar bastante texto, debemos elegir el campo tipo Memo. Por otro lado, cuando vayamos a introducir datos de tipo numérico elegiremos entre Numérico o Texto, dependiendo si deseamos realizar operaciones matemáticas con ellos o no, respectivamente. El campo Autonumérico lo podemos utilizar para numerar los registros automáticamente según los vamos introduciendo en la tabla. Cuando el campo sólo pueda contener una afirmación o una negación 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 máximo de 4 decimales y añade 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 cálculo, una carta, una imagen, un gráfico, etc. Se recomienda especificar el valor más pequeño posible en la propiedad Tamaño del campo, pues los tamaños más pequeños pueden procesarse más rápidamente y requieren menos memoria. Precaución: Si cambia un valor de Tamaño del campo grande por otro más pequeño para un campo que ya contiene datos, es posible que pierda información. Por ejemplo, si un campo de tipo Texto tiene el valor 255 en Tamaño del campo y lo cambia por 50, los datos que se extiendan más allá de los 50 primeros caracteres se perderán. Si los datos de un campo de tipo Numérico no caben con un nuevo valor de Tamaño del campo, los números fraccionarios se pueden redondear, o pueden dar el valor Nulo. Por ejemplo, si cambia el tamaño de campo de Simple a Entero, los valores fraccionarios se redondearán al número entero más cercano, y los superiores a 32.767 o inferiores a -32.768 serán reemplazados por valores nulos. No es posible deshacer los cambios en los datos provocados por una modificación de la propiedad Tamaño del campo después de haberlos guardado en la vista Diseño 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 unívocamente a cada registro de la tabla. Por ejemplo, en nuestro caso de la gestión de los cursos, las tablas funcionario y curso tienen un campo clave (DNI y Código curso respectivamente). 11 
  • 12. Access Avanzado 2003  En el caso de que no podamos encontrar un campo clave se añade a la tabla un campo de tipo Autonumérico o bien podemos elegir varios campos como la clave de la tabla. Estructura de un fichero Access Como se explica más 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 físicamente en un sólo fichero. Por ello en Access, se identifica una base de datos con el fichero en el que se almacena. Este fichero tiene la extesión mdb. Esta estructura de ficheros de Access es propia de esta aplicación. Otros formatos de base de datos utilizan otros criterios. Por ejemplo los ficheros dBase de Lotus Approach utilizan un fichero para cada tabla con extensión dbf. Información: 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 extensión ldb. Este archivo es eliminado de forma automática al ser cerrada la base de datos. Existe mientras la base de datos está en uso. 12 
  • 15. Corpus Ruiz Fernández  A partir de aquí vamos a ir desarrollando la teoría con un ejercicio práctico –Mi proyecto- que consistirá en diseñar una base de datos que sea capaz de gestionar las solicitudes de los Cursos de Formación de la Dirección Provincial. Empezaremos creando nuestra primera tabla –Localidad- para almacenar el código 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 básicos como clave principal, clave ajena e integridad referencial e insistiremos en lo importante que es un buen diseño 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 información sobre las localidades de la provincia de Ciudad Real una vez iniciada una sesión 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 diálogo que aparece se elige la ubicación 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 
  • 16. Access Avanzado 2003  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 títulos: 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 títulos, permite crear nuevos objetos y abrir o visualizar los ya creados. 16 
  • 17. Corpus Ruiz Fernández  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 todavía la base de datos está vacía- y los asistentes para crearlos. Breve descripción de cada uno de los objetos Tablas: Principal objeto de la base de datos donde se almacena la información, estructurada en registros y campos. Consultas: Permite realizar una operación sobre la base de datos para seleccionar, modificar, insertar ó borrar registros según un criterio. Las consultas se pueden realizar sobre una o varias tablas. Formularios: Es una ventana diseñada para la introducción y edición 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 diseñado. La ventaja frente a la presentación como hoja de datos es que los campos se presentan de forma más adecuada al usuario, con un diseño que ayuda a su comprensión, utilizando los controles más adecuados a cada tipo de información. Informes: Si el formulario es idóneo para introducir y editar los datos, la mejor forma de mostrarlos es mediante un informa en una página impresa o su presentación en la pantalla del ordenador. Access proporciona herramientas para diseñar 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 operación 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 botón. 17 
  • 18. Access Avanzado 2003  Módulos: Conjunto de declaraciones y procedimientos de Visual Basic. No se verán en el curso ya que está dirigido a los programadores. Páginas: Para crear páginas 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 través de navegadores de Internet. Orientado a programadores para presentar los formularios vía 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 Diseño que será el método que utilizaremos. Otra forma de crearla sería haciendo clic sobre el icono . Aparecerá la ventana Diseño 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 descripción para cada campo: 18 
  • 19. Corpus Ruiz Fernández  En la parte inferior de cada campo tenemos la ficha General para definir propiedades del campo como por ejemplo: Código CP Nombre Tamaño del campo1 Entero Entero 30 Formato 2 00000 00000 Título 3 Código del pueblo Código 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 Código Postal) eligiéndolo y haciendo clic en el icono clave principal de la barra de herramientas. A la izquierda del nombre del campo aparecerá una llave indicándonos 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 hubiéramos asignado clave principal a la tabla, al salir del modo diseño aparecería un cuadro de diálogo avisándonos de ello y preguntándonos si queremos que Access cree una. Si decimos que Sí, se añade un campo Autonumérico 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 información a introducir Antes de crear una base de datos debemos pensar bien el diseño de la misma, pues una vez creada y con datos introducidos, es más difícil modificarla. 1 Depende del tipo de dato: Texto: Puede tomar valores entre 0 y 255. Numérico: Entero, por lo que almacena números del -32768 al 32767. 2 Para personalizar la forma en que los números, 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 búsquedas y ordenamientos en un campo. 19 
  • 20. Access Avanzado 2003  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 información por campos, de forma que cada campo corresponda a una tabla y que la información 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 básico: Una base de datos que gestiona los cursos de formación de la Dirección 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 información –DNI, nombre y apellidos, nombre de los cursos, etc… Toda esta información podemos recogerla en dos tablas: Tabla Funcionario: Con información relativa sobre quienes van a realizar los cursos. Tabla Curso: Con información relativa a los cursos. Tipo de relaciones Las relaciones entre tablas se hacen a través de sus claves principales. La clave principal de la tabla Funcionario es el DNI y de la tabla Curso el Código 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 sólo un registro de la otra tabla. Un ejemplo sería la relación entre la tabla Sección y la tabla Jefe, ya que en una sección sólo puede haber un jefe y cada jefe sólo puede serlo de una sección. 20 
  • 21. Corpus Ruiz Fernández  Uno a varios: Cada registro de una de las tablas está relacionado con uno o varios registros de la otra tabla. Un ejemplo sería la relación entre la tabla Funcionario y la tabla Localidad, donde en una localidad pueden vivir uno o más funcionarios y un funcionario sólo puede vivir en sólo una localidad. Varios a varios: Cada registro de una tabla está relacionado con uno o más de la otra tabla y cada registro de ésta con uno o varios registros de la otra. 21 
  • 22. Access Avanzado 2003  Por tanto, nuestro ejemplo corresponde a una relación 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: Relación entre la tabla Localidad y la tabla Funcionario Esta relación, como vimos, es de uno a varios. Lo que se hace, en este caso, es añadir a la tabla Funcionario la clave de la tabla Localidad –El Codigo del pueblo ya que, como sabemos, el Código Postal se repite en algunos pueblos. Al campo CodigoPueblo de la tabla Funcionario se le llama clave ajena. Relación entre la tabla Funcionario y la tabla Curso Dicha relación es de varios a varios. Cuando la relación 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 Código de la tabla Curso). Además, de una solicitud nos interesa, por ejemplo, la fecha de entrada y la fecha en la que empieza el curso, por lo que podemos añadir dos campos más a la tabla Solicitud. Resumen de nuestro supuesto Al final, las relaciones que se han establecido en nuestro proyecto quedaría así: 22 
  • 23. Corpus Ruiz Fernández  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 Solicitud sería la combinación 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 vinculación 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 vinculación 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 leídas 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 Formación, y desde allí vincular la tabla Localidad de la base de datos Localidad.mdb: Archivo Obtener datos externos Importar… 23 
  • 24. Access Avanzado 2003  Selecciona el archivo Localidad.mdb y pulsa el botón Vincular. En la ventana Vincular tablas selecciona la tabla Localidad y pulsa el botón 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, añadiendo los campos siguientes: 24 
  • 25. Corpus Ruiz Fernández  Vamos a comentar algunas propiedades de estos campos: DNI Tamaño del campo: Entero largo, ya que el DNI no contiene decimales y tiene un tamaño suficiente para almacenar los DNI’s. 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 búsquedas por este campo y no duplicar valores. Nombre Primer apellido Segundo apellido Tamaño 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 búsquedas u ordenación por estos campos, en caso contrario No. Domicilio Tamaño del campo: Con 35 caracteres tenemos suficiente para el domicilio. Siempre habrá tiempo para aumentar el tamaño 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 Tamaño del campo: Con Entero tenemos una longitud suficiente para introducir los posibles valores de este campo. Formato: 00000, para completar con 0 a la izquierda el número que se introduzca. Lugares decimales: 0, ya que es un número entero por lo que no contiene decimales. Requerido: Sí, para hacer obligatoria la introducción 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 cómo debe combinar la información mediante una relación. En una relación, los campos relacionados deben ser del mismo tipo de datos pero no es necesario que tengan el mismo nombre. Para crear una relación hay que seguir estos pasos: Hacer clic en Relaciones en la barra de herramientas o Herramientas Relaciones… en la barra de menús. Como aún no se ha definido ninguna relación, se mostrará automáticamente el cuadro de diálogo Mostrar tabla: 25 
  • 26. Access Avanzado 2003  Hacer doble clic en las tablas que vamos a relacionar -Funcionario y Localidad- y cerrar el cuadro de diálogo Mostrar tabla. Aparecerán 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 diálogo Modificar relaciones hay que comprobar que los campos mostrados en las dos columnas son correctos y pulsar Crear. 26 
  • 27. Corpus Ruiz Fernández  En la ventana de relaciones aparecerá la relación que acabamos de crear: Nota: Las relaciones entre Funcionario-Solicitud y Solicitud-Curso se proponen como ejercicio. Quedarían así: Asimismo, cada una de estas tablas contendrá estos campos: 27 
  • 28. Access Avanzado 2003  Integridad referencial La integridad referencial es un conjunto de reglas de Access que garantizan que las relaciones entre los registros de tablas relacionadas son válidas y que no se eliminan ni modifican accidentalmente datos relacionados que satisfacen dicha relación. 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, también indexado (con o sin duplicados según proceda). Ejemplo: En la relación 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 excepción de que la relación se establezca entre un campo de tipo Autonumérico y un campo de tipo Numérico, 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 numérico 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 opción 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 
  • 29. Corpus Ruiz Fernández  Actualizar en cascada los campos relacionados en la ventana Modificar relaciones. 29 
  • 30. Access Avanzado 2003  Ejercicios Crear la base de datos Cursos de formación 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 están bien hechas, introducir dos o tres registros en cada una de las tablas siguiendo este orden: o Añadir datos algunos funcionarios. o Añadir distintos tipos de cursos. o Añadir unas cuantas solicitudes de funcionarios que ya estén mecanizados. 30 
  • 34. Access Avanzado 2003  Introducción 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 tendrán efecto sobre las tablas origen de la consulta. Podemos utilizar una consulta para proporcionar datos a un formulario o informe y presentar sólo los registros que se han obtenido. Tipos de consultas Consultas de selección: Es la más habitual y sencilla. Con este tipo de consulta podemos: o Obtener los datos de una o más 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 acción: 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. Creación de mi primera consulta Una vez presentadas las solicitudes para los cursos, el personal de Formación junto con los sindicatos se reúnen para elegir a los funcionarios que van a asistir a los cursos. Por tanto, necesitamos un campo más en la tabla Solicitud para poder distinguir quién 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 sólo Verdadero o Falso (Sí/No): 34 
  • 35. Corpus Ruiz Fernández  ¿Cómo 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 resúmenes de los mismos. Dejamos la opción por defecto que presenta Access. Clic en Siguiente. 35 
  • 36. Access Avanzado 2003  Damos un nombre a la consulta –Solicitudes aceptadas- y pulsamos Finalizar. Elegimos la opción Modificar el diseño de consulta- para que se abra la consulta en modo diseño desde donde podremos modificarla y añadir las condiciones que debe cumplir. El resultado que obtenemos en Access será similar a éste: La ventana de diseño de consultas tiene dos áreas: La superior -donde aparecen las tablas que participan en la consulta- y la inferior –rejilla que presenta los campos añadidos 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 sólo las solicitudes aceptadas. 36 
  • 37. Corpus Ruiz Fernández  Para ejecutar la consulta hay que seleccionarla y pulsar el botón 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 más de una tabla Si miramos el resultado de la consulta anterior, no podemos saber cómo se llama el funcionario ni el curso al que hace referencia los registros que cumplían los criterios. Access permite hacer una consulta en la que estén implicados campos pertenecientes a más de una tabla. Vamos crear otra consulta con los siguientes campos: Tabla Campos Solicitud Aceptada y FechaCurso Funcionario Nombre, Primer apellido y 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 añadir. 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 quedaría así: 37 
  • 38. Access Avanzado 2003  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 ratón, podemos modificar la posición de las tablas para ver mejor la relación 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. Podríamos seguir añadiendo criterios, como: Criterio Fórmula Obtener solicitudes de un año en concreto Año([FechaEntrada])=2007 Obtener solicitudes del año actual Año([FechaEntrada])=Año(Ahora()) Obtener solicitudes del mes actual Año([FechaEntrada])=Año(Ahora()) Y Mes([FechaEntrada])=Mes(Ahora()) Obtener solicitudes presentadas en un intervalo de fechas. >#01/01/2007# Y <#30/06/2007# 38 
  • 39. Corpus Ruiz Fernández  Crea un campo calculado con una consulta Un campo calculado es el resultado de una operación con uno o más 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 Diseño: Añadimos las tablas que necesitamos para la consulta (Funcionario, Solicitud y Curso) eligiéndola y pulsando Aceptar. Añadimos 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 combinación 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 ejecución de la consulta será: 39 
  • 40. Access Avanzado 2003  Vamos a utilizar el generador de expresiones para crear la fórmula del campo calculado: Nos situamos en la celda donde vamos a generar el campo calculado. Botón 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 fórmula es Funcionario.Nombre. Para elegirlo nos situamos en la tabla Funcionario, elegimos el campo Nombre y hacemos clic en Pegar para añadirlo a la fórmula. 40 
  • 41. Corpus Ruiz Fernández  Añadir el espacio en blanco que viene después del nombre haciendo clic en el símbolo + del generador de expresiones y escribir “ “. Idem para los espacios siguientes. Para añadir las campos Primerapellido y Segundoapellido se actúa de forma similar a cuando añadimos el campo Nombre. Finalizar pulsando el botón Aceptar. Al final la fórmula quedaría así: 41 
  • 44. Access Avanzado 2003  Introducción Los formularios son la parte de la aplicación que va a estar a disposición de los usuarios, constituyendo el núcleo de la interfaz aplicación-usuario. Por eso es necesario tener un especial cuidado en su diseño y construcción. 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 información de forma clara y ordenada. Un formulario convenientemente diseñado acelera la introducción de datos y minimiza los errores de los usuarios. Los formularios son el tipo de objeto más 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á diseñar según sus necesidades. Nota: Los formularios pueden estar basados en tablas o en consultas. Son más eficientes los diseñados a través de consultas. ¿Cómo se construyen? Los formularios se construyen partiendo de un conjunto de elementos de diseño independientes denominados controles u objetos de tipo control. Los controles son los componentes habituales de las ventanas y diálogos de Access y otras aplicaciones Windows. Un formulario consiste en una ventana en la que se sitúan varios tipos de controles: los que muestran los datos de las tablas y los que muestran datos estáticos como etiquetas o logotipos, los que permiten generar acciones, tales como botones que abren otros formularios o imprimen informes, etc. Los formularios Access son versátiles: permiten realizar tareas que no son posibles en las hojas de datos Tabla o Consulta. Es posible validar las entradas en base a información contenida en otras tablas distintas a la editada. Se pueden crear formularios que incorporen otros formularios (subformularios). Además, desde un formulario, es posible realizar cálculos y mostrar totales. 44 
  • 45. Corpus Ruiz Fernández  Los controles Son los objetos que utilizamos para crear los formularios e informes y distribuyen la información 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 cálculo 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 verificación, los botones de opción o botones de alternar para presentar un conjunto limitado de alternativas que hace que el usuario sólo tenga que hacer clic en el valor que desee –sólo se puede seleccionar una opción 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. Botón alternar, botón de opción y casilla de verificación : Se utilizan para añadir una nueva opción a un grupo de opciones ya creado o para presentar un campo booleano (Sí/No) –si el botón 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 añadido al crearlo. También asegura que la información que se ha introducido en el campo es correcta. Puede tener una o más columnas. Cuadro de lista : Idem que el cuadro combinado a diferencia que los valores aparecen desplegados en todo momento. Botón de comando : Permite ejecutar una acción con un simple clic como abrir un formulario, añadir 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 varían al cambiar de registro. Marco de objeto dependiente : Idem que el anterior pero que varían en cada registro. 45 
  • 46. Access Avanzado 2003  Salto de página : Sólo 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 relación uno a varios. Línea : Para insertar una línea. Rectángulo : Para insertar un rectángulo. Controles más complejos . Nota: Para añadir 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 diseñar formularios con un formato estándar de una forma rápida. Puede contener campos de varias tablas o consultas. Autoformularios: Elabora un formulario sencillo con campos de una sola tabla sin pedir ninguna información al usuario. Vista diseño: Para crear formularios desde cero. Sólo 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 añadir o modificar registros en la tabla Funcionario. Basado en la consulta ConGestionFormulario. GestionCurso: Para añadir o modificar registros en la tabla Curso. Basado en la consulta ConGestionCurso. GestionSolicitud: Para añadir 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 
  • 47. Corpus Ruiz Fernández  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. Creación de formularios mediante el asistente Es el que más se utiliza, ya que no es tan rígido como los autoformularios ni tan laborioso como el realizado en Vista diseño. Facilita muchos pasos tediosos y permite una posterior personalización. Esta forma de creación 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 añadir o modificar registros se añaden 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 añadiendo los campos y guardarla como ConGestionSolicitud. Una vez creada la consulta, vamos a crear nuestro primer formulario –GestionSolicitud- utilizando el asistente. 47 
  • 48. Access Avanzado 2003  Nota: Si queremos que nuestra base de datos recoja información sobre el número de horas de cada curso se tendrá que añadir 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 botón para abrir el asistente y seleccionar Asistente para formularios y clic en Aceptar. En Tabla/Consultas, seleccionar la consulta antes creada –ConGestionSolicitud- y añadir todos los campos pulsando y Siguiente. 48 
  • 49. Corpus Ruiz Fernández  Elegimos, como forma de distribuir los campos en el formulario, la opción Justificado. Cualquiera de los estilos a aplicar, por ejemplo Estándar. Damos el nombre de GestionSolicitud al formulario y activamos la opción de Modificar el diseño del formulario para ir al modo diseño. Se termina pulsando Finalizar. 49 
  • 50. Access Avanzado 2003  Quizás parezca algo difícil de entender lo que vemos en pantalla en el modo diseño del formulario, pero no es más que el esquema. Básicamente 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 información 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 ratón podrás moverlos a cualquier parte de la zona Detalle y modificar su posición en la pantalla. Pie: Para mostrar información como el número de página o la fecha. Para aumentar el tamaño de la altura de cada una de estas partes hay que situar el puntero del ratón entre la línea que las divide hasta que el curso del ratón aparezca como . Pulsar botón izquierdo del ratón y desplazarlo hacia abajo o hacia arriba para darle para aumentra o disminuir la altura. 50 
  • 51. Corpus Ruiz Fernández  Por último, vamos eligiendo los diferentes objetos del formulario y situándolos donde mejor veamos, así como añadiendo nuevos objetos. El formulario Solicitud Lo utilizaremos para visualizar las solicitudes presentadas. Tanto la creación de la consulta – ConSolicitud- como del formulario son similares a los anteriores. Sólo varía el modo de presentación y distribución de los campos. 51 
  • 52. Access Avanzado 2003  Agregar un campo a un formulario Puede agregar rápidamente 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 
  • 53. Corpus Ruiz Fernández  Sólo hay que arrastrar uno de los campos que aparecen en la lista hasta el formulario o informe y Access crea automáticamente el control apropiado para mostrar el campo, como cuadro de texto o cuadro combinado y después 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 añadir no está incluido en la lista de campos es porque no se añadió a la consulta. Para que aparezca, hay que editar la consulta –ConGestionSolicitud- y añadirlo. Orden de tabulación El orden de tabulación 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 añadido al crear la consulta. Para comprobar si es el correcto, editamos el cuadro de diálogo Orden de tabulación desde el modo diseño haciendo clic con el botón derecho del ratón 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 sólo lectura Como se puede observar, los campos con fondo amarillo no pertenecen a la tabla Solicitud por lo que deberemos de marcarlos como de sólo lectura para evitar modificarlos. Para ello, hay que poner a Sí en la propiedad Bloqueado y No en la propiedad Activado. 53 
  • 54. Access Avanzado 2003  Evitar aprender códigos Si añadimos un registro directamente desde GestionSolicitud vemos que al introducir el Código del Curso debemos escribir el código que tiene asignado en el campo Codigo de la tabla Curso. Podemos evitar memorizar dichos códigos y facilitar la introducción de datos en ese campo creando un control de cuadro combinado siguiendo los siguientes pasos: Desde el modo diseño 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 opción siguiente: Elegimos la tabla Curso que será la que proporcione los valores para el cuadro combinado y clic en Siguiente. 54 
  • 55. Corpus Ruiz Fernández  Seleccionamos los campos Codigo y Nombre de la tabla Curso para que aparezcan en el cuadro combinado. El campo Codigo contiene la información a almacenar en el campo CodigoCurso de la tabla Solicitud y el campo Nombre posee información del nombre del curso que nos ayudará a elegir el código. Ordenamos la lista por el campo Nombre. Podemos ocultar o no la columna clave (campo Codigo). En nuestro caso no la ocultaremos. 55 
  • 56. Access Avanzado 2003  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 acompaña al cuadro combinado –Codigo Curso. 56 
  • 57. Corpus Ruiz Fernández  Se borra el cuadro de control Codigo Curso para evitar información duplicada, se diseña a gusto el cuadro combinado y se coloca en el lugar adecuado. Que en el modo Vista aparecerá así: Nota: Para añadir un campo que no esté en la consulta, habrá que editar ésta y añadir dicho campo a la misma. Por ejemplo, si por error no se hubiera añadido a la consulta el campo Localidad de la tabla Localidad y fuera necesario presentarla en el formulario habría que editar la consulta y añadir dicho campo. 57 
  • 58. Access Avanzado 2003  Propiedades de un formulario Para visualizar las propiedades de cualquier objeto hay que situarse en él. Si no aparece un cuadro de diálogo con sus propiedades hay que hacer clic en el icono o ir a Ver Propiedades. Están agrupadas en categorías: Ficha formato: Presenta características sobre la apariencia del formulario o Vista predeterminada: Especifica la presentación 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: Pequeño 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 
  • 59. Corpus Ruiz Fernández  Ficha datos: Características sobre la procedencia de los datos, permisos, filtros y ordenación. 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 condición 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 sólo se podrán 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: Sólo tiene efectos cuando la anterior propiedad está establecida a Sí. El formulario se abre presentando sólo 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 diálogo 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. Página activa: Regresamos al primer campo de la página. 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 
  • 60. Access Avanzado 2003  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 sería la siguiente: Formularios ! [GestionSolicitud] ! [Domicilio] Exportar registros utilizando el Filtro por formulario Con frecuencia, se producirán situaciones en las que los datos estén 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 cálculo de Excel y después 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 búsqueda utilizando el Filtro por formulario . 60 
  • 61. Corpus Ruiz Fernández  Un filtro por formulario permite establecer condiciones de filtrado algo más complejas utilizando condiciones o criterios de selección 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 cálculo. Nota: La combinación de correspondencia desde Word se puede utilizar usando como origen de los datos el archivo Excel anteriormente exportado. 61 
  • 63. Corpus Ruiz Fernández  Ejercicios Crear un formulario para gestionar los cursos –GestionCurso- y los funcionarios – GestionFuncionario- que los solicitan basándose en las consultas ConGestionCurso y ConGestionFuncionario. Establecer el orden de tabulación. 63 
  • 67. Corpus Ruiz Fernández  Introducción 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 combinación formulario/subformulario se denomina a menudo formulario jerárquico, formulario principal/detalle o formulario principal/secundario. Los subformularios son muy eficaces cuando se desea mostrar datos de tablas o consultas con una relación 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 relación y los datos de la tabla Solicitud constituyen el lado “varios” de la relación, ya que cada funcionario puede haber presentado más de una solicitud. En la imagen, podemos observar que el funcionario Manuel Ruiz Fernández 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 crearán subformularios basados en consultas, aunque vamos a ver inicialmente cómo crear a la misma vez formulario y subformulario a partir de tablas. Repaso de lo hecho hasta ahora Hasta ahora, hemos diseñado tres formularios con sus correspondientes consultas. Formulario Descripción Consulta asociada GestionSolicitud Para añadir o modificar registros de la tabla Solicitud. ConGestionSolicitud GestionFuncionario Para añadir o modificar registros de la tabla Funcionario. ConGestionFuncionario GestionCurso Para añadir o modifica registros de la tabla Curso ConGestionCurso Solicitud Para visualizar registros de la tabla Solicitud ConSolicitud 67 
  • 68. Access Avanzado 2003  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á información 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 Código Postal y Localidad Solicitud DNI, Fecha del curso, número de horas y Aceptada Curso Nombre del curso Desde el asistente para formularios, añadir 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 
  • 69. Corpus Ruiz Fernández  Elegir Tabular como distribución a aplicar al subformulario para así poderle añadir también controles como botones. Indicar el título para el formulario –Formulario ejemplo- como para el subformulario – Subformulario Ejemplo. Diseñar el formulario principal y el subformulario y distribuir los campos a nuestro gusto y establecer el orden de tabulación Establecer como de sólo 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 
  • 70. Access Avanzado 2003  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 relación 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 información la tenemos repetida en el formulario principal. Consulta del formulario principal: ConFuncionario A esta consulta la llamaremos ConFuncionario y será idéntica que la consulta ConGestionFuncionario que ya hemos construido. Por tanto, por no partir desde el inicio, podemos copiarla y después darle su nombre siguiendo estos pasos: Ir al objeto consultas, hacer clic con el botón derecho en ConGestionFuncionario y elegir copiar. 70 
  • 71. Corpus Ruiz Fernández  Botón derecho Pegar. En el cuadro de diálogo dar el nombre a la consulta: ConFuncionario. Consulta del subformulario: ConSubCurso Merece la pena dedicarle tiempo a este primer paso ya que contendrá la información que hay que presentar, en nuestro caso una relación de los cursos solicitados. Recordemos que las relaciones entre las tablas del proyecto son las siguientes: La relación 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 información de la parte varios no tiene por qué ser todos los campos de la tabla Solicitud, sino la más representativa para nosotros, como la fecha de realización del curso, su duración o si la solicitud ha sido o no aceptado, y lo principal: ¡Cómo 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 más representativo y descriptivo es éste último. Otro campo que hay que añadir es el campo que representa la clave ajena de la tabla Solicitud –DNI- para poder vincular el formulario principal y el subformulario en el último paso. Resumiendo, la consulta se llamará ConSubCurso y constará de estos campos: 71 
  • 72. Access Avanzado 2003  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 distribución justificada y clic en Siguiente. 72 
  • 73. Corpus Ruiz Fernández  Se elije cualquier formato, por ejemplo estándar, y se le da el nombre de Funcionario. El diseño del formulario se retoca para que quede más presentable: El subformulario SubCurso Abrimos el Asistente para formularios y seguimos estos pasos: Elegir en Tablas/Consultas la consulta creada anteriormente –ConSubCurso- y añadir todos los campos que contiene. Pulsar Siguiente. 73 
  • 74. Access Avanzado 2003  Como queremos un listado de las solicitudes, elegimos –como forma de ver los datos- por Solicitud y clic en Siguiente. Se elige distribución tabular para presentar los registros en filas y clic en Siguiente. 74 
  • 75. Corpus Ruiz Fernández  Se le aplica el estilo Estándar y se le da el nombre de SubCurso. El subformulario tendrá un aspecto similar a este, al ser de distribución tabular. Se utilizará para visualizar registros por lo que todos sus campos serán de sólo lectura. Insertar el subformulario en el formulario principal Con el formulario principal abierto en modo Diseño, 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 
  • 76. Access Avanzado 2003  Por último se le da un título, por ejemplo: Cursos Solicitados, y finalizamos haciendo clic en Finalizar. No hay que confundir el título y el nombre del subformulario. Para evitar duplicidad de información, eliminamos del subformulario el campo DNI. Establecemos como de sólo lectura los demás campos del subformulario. Quedará en modo Vista así: Nota: A todos los formularios creados se le pueden añadir botones a través de los cuales se podrán realizar acciones sencillas como añadir o modificar registros, ir a otros formularios, etc. Veremos cómo se hace cuando tratemos las macros. Función de nuestros formularios en el proyecto Formulario Funcionario: Sólo 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 añadir, modificar o eliminar registros –para esas acciones tenemos el formulario GestionFuncionario. Tiene agregado el subformulario SubCurso, que 76 
  • 77. Corpus Ruiz Fernández  lista los cursos pedidos por cada funcionario. Formulario Curso: Para visualizar datos de los cursos que se han podido solicitar hasta ahora en la Dirección Provincial –idem que el anterior respecto a las propiedades Activado y Bloqueado . Se impedirá que desde él se puedan añadir, modificar o eliminar registros. Tiene agregado el subformulario SubFuncionario. Subformulario SubCurso: Todos los campos como sólo lectura y sólo para visualizar los cursos solicitados por los funcionarios. Subformulario SubFuncionario: Todos los campos como sólo lectura y sólo para visualizar los funcionarios que han presentado un determinado curso. 77 
  • 79. Corpus Ruiz Fernández  Ejercicios Crea un formulario -Curso- que visualice información sobre los cursos que se pueden impartir en la Dirección 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 
  • 83. Corpus Ruiz Fernández  Introducción Las macros son un método sencillo para realizar una o más tareas básicas 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 botón de comando. Una macro puede ser una macro compuesta de una secuencia de acciones, o puede ser un grupo de macros. También se puede usar una expresión condicional para determinar si se llevará a cabo una acción 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á automáticamente 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, sólo se visualizan las columnas Acción y Comentario. Para mostrar Nombre de macro y Condición vaya al menú ver. Nombre de macro: Identifica el nombre de la macro dentro de un grupo de macros. Condición: Expresión condicional para determinar la ejecución o no de una acción. Acción: Se utiliza para especificar una acción que desea que ejecute una macro. Para especificar la acción de una macro haga clic en la celda acción y seleccione una acción de la lista. Comentario: Texto para describir lo que hace la acción. Al seleccionar una acción aparece en la parte inferior sus. Por ejemplo, al elegir la acción AbrirFormulario los argumentos que aparecen son los siguientes: Crear botones en Funcionario Abrir, en modo diseño, el formulario Funcionario. Visualizar Cuadro de herramientas y desactivar asistente para controles . Selecciona el control . 83 
  • 84. Access Avanzado 2003  Clic en el lugar del formulario donde se desea crear el botón. Darle nombre y tamaño al botón. Mostrar las propiedades del botón y asociar una macro al evento Al hacer clic –por ejemplo, Funcionario.Añadir que añade un registro de la tabla Funcionario. Crear los demás botones siguiendo los mismos pasos anteriores. El formulario principal quedaría diseñado así: Al pulsa los botones se ejecuta la macro asociada. 84 
  • 85. Corpus Ruiz Fernández  Crear un macro Podríamos definir una macro que abra el formulario GestionFuncionario, para agregar un nuevo registro, cuando el usuario haga clic en un botón. Es fácil, tienes que ir al objeto Macro de la base de datos y hacer clic en . Se abrirá la ventana de diseño desde la que se irán seleccionando las acciones que deberán ejecutarse de entre las existentes en la lista desplegable: En la columna comentario se describe para qué sirve la acción. Una vez elegida la acción, 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, diseño, vista preliminar, etc.) Nombre del filtro a aplicar al abrir el formulario. Condición: Expresión SQL que se ejecuta para seleccionar los registros que cumplen la condición. 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 Sólo 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 
  • 86. Access Avanzado 2003  o Icono: Abre el formulario y lo minimiza. o Diálogo: Formulario modal (debe de cerrar el formulario para poder hacer clic fuera de él) y emergente (permanece por encima de otras ventanas de la aplicación.) Se pueden añadir tantas acciones como queramos pero debiéndolas 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 están relacionadas. Se crearán 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 estarán 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 AñadirRegistro del grupo GestionFuncionario tendrá la referencia GestionFuncionairo.AñadirRegistro. 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 acción de la columna acción 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. Botón Macro asociada Acciones Modificar Modificar Abre el formulario GestionFuncionario para añadir un nuevo registro. Añadir Añadir Abre el formulario GestionFuncionario para modificar un registro. Buscar Buscar Realiza búsquedas por el DNI. 86 
  • 87. Corpus Ruiz Fernández  Macro Añadir El formulario que utilizamos para añadir nuevos funcionarios es GestionFuncionario. Por tanto, la acción que se ejecutará al hacer clic en el botón será abrir el formulario con estos argumentos: Modo de datos = Agregar porque vamos a añadir un registro Modo de la ventana = Diálogo para que se abra el formulario no pueda desplazarse a otro objeto hasta que no se cierre y la información que se muestre permanezca encima de las demás ventanas de Access. Macro Modificar Para modificar registros de la tabla Funcionario también usaremos el formulario GesitonFuncionario. La acción a ejecutar una vez se haga clic en consistirá en abrir el formulario especificando estos argumentos: 87 
  • 88. Access Avanzado 2003  Modo de datos = Modificar ya que modificaremos un registro. Condición 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 búsquedas 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 acción deberá evaluarse una expresión condicional. Si la condición es verdadera, Access lleva a cabo la acción en esa fila y cualquiera de las acciones inmediatamente posteriores que vayan precedidas por puntos suspensivos (…) en la columna Condición. Habrá que añadir al formulario Funcionario otro botón más para que lleve a cabo estas acciones y un control de texto independiente –no vinculado a ningún campo de las tablas y que llamaremos VarBuscar- donde introduciremos el DNI a buscar. El formulario Funcionario quedará así: 88 
  • 89. Corpus Ruiz Fernández  Para saber si en la búsqueda se ha encontrado o no registros se utiliza la función Dcont que devuelve el número de registros hallados: Si es igual a 0 No se ha hallado ningún registro y por tanto se presenta un mensaje advirtiéndoselo al usuario. Si es distinto de 0 Se presenta el registro hallado. Sólo se pueden encontrar como máximo un registro ya que el DNI es clave principal de la tabla Funcionario y su valor – recordémoslo- es único. La sintaxis de la función DCont: DCont(expr; dominio [; criterios] ) exp: Expresión 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. Expresión de cadena utilizada para restringir el intervalo de los datos en los que se ejecuta la función DCont. [DNI] = [Formularios]![Funcionario]![VarBuscar] Por tanto, las dos posibles condiciones son: Si se ha encontrado algún registro: DCont("[DNI]";"Funcionario";"[DNI] = [Formularios]![Funcionario]![VarBuscar]")>0 Por lo que entonces se ejecutará la acción AplicarFiltro con la condición [DNI] Como [Formularios]![Funcionario]![VarBuscar] Que equivale a lo mismo que si hubiéramos aplicado un filtro por formulario y en el campo DNI hubiéramos introducido el valor que se ha introducido en el control independiente VarBuscar. Si no se ha encontrado ningún registro: DCont("[DNI]";"Funcionario";"[DNI] = [Formularios]![Funcionario]![VarBuscar]")=0 La acción a ejecutar será el mostrar todos los registros y mostrar un cuadro de mensaje informando de que no se ha encontrado ningún registro. 89 
  • 90. Access Avanzado 2003  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 añadir, modificar y buscar registros de la tabla Funcionario. . El grupo Curso Las acciones a llevar a cabo serán añadir y modificar registros. Se deja como ejercicio, sólo 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 exportación de registros para combinarlos con un documento Word y la de imprimir directamente escritos de Word - ahorrándose la tarea de la exportación- mediante código de Visual Basic. Nota: Además, este grupo tiene las macros añadir, modificar y buscar, vistas en el grupo Funcionario así que no vamos a entrar en más detalles. 90 
  • 91. Corpus Ruiz Fernández  Macro Exportar Ojo, antes de pulsar en el botón que ejecuta la macro hay que asegurarse de que se ha aplicado un filtro por formulario para que sólo se exporten los registros que cumplan las condiciones excepto cuando queremos hacer una exportación de todos los registros. Para aplicar el filtro por formulario hay que hacer clic en e introducir las condiciones de búsqueda en el formulario. Opciones cuando se filtra por formulario: Para realizar la exportación de registros se utiliza la acción SalidaHacia. El tipo de objeto desde el que vamos a realizar la exportación 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 ningún directorio lo almacena en Mis Documentos. 91 
  • 92. Access Avanzado 2003  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 opción a la fusión es hacerlo con Código Visual Basic: Crear una plantilla en Microsoft Word en la que insertaremos el texto normal de un escrito más 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 (extensión 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 
  • 93. Corpus Ruiz Fernández  Desde el evento Al hacer clic del botón 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 
  • 94. Access Avanzado 2003  Resumen El grupo Solicitud contiene cuatro macros –para añadir, modificar, buscar y exportar registros. El grupo Comun En este grupo agregaremos las macros que van a ser comunes a dos o más 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. También se incluirá la macro Aceptar para confirmar las variaciones que se hagan al añadir o modificar registros. Macro Funcionario Macro Curso 94 
  • 95. Corpus Ruiz Fernández  Macro Solicitud Macro Aceptar Al estar en blanco el Tipo de objeto se cierra la ventana activa. 95 
  • 105. Corpus Ruiz Fernández  ANEXO DE LAS ACCIONES MÁS UTILIZADAS Acción Descripción 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 acción BuscarRegistro. CancelarEvento Cancela el evento que ejecutó la macro que contiene esta acción. 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 están 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 ningún control. SalidaHacia Exporta los registros al formato especificado –Excel, Word, texto, html… Salir Cierra Access. 105 
  • 107. Corpus Ruiz Fernández  Ejercicios Crear las macros para los formularios Curso y GestionCurso. 107 
  • 111. Corpus Ruiz Fernández  Introducción El objeto informe se emplea para ofrecer una presentación personalizada de la información pudiendo ordenarla, agruparla y resumirla en la forma deseada. También permite generar totales de los datos numéricos. Se utilizan para sacar datos de una base de datos e imprimirla. Un informe no es nada más que una forma elegante y dinámica de presentar una tabla o consulta e imprimirlas. Tanto en su estructura como en su funcionamiento son prácticamente idénticos a los formularios, aunque a través de informes no podemos modificar datos, sólo presentarlos. Formas de crear un informe Asistente para informes o etiquetas: Permite diseñar informes con un formato estándar de una forma rápida, ya que realizan automáticamente todo el trabajo básico. 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 información al usuario. Vista diseño: 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 diseños 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 algún curso, por lo que nos basaremos en la consulta ConFuncionario. 111 
  • 112. Access Avanzado 2003  Cuando hay campos de más de una tabla en la consulta, Access nos da la opción de presentar los datos por una de las tablas. En nuestro caso elegiremos por Funcionario. Access nos da la opción de agrupar y ordenar los registros que se van a presentar en el informe por uno o varios campos. Vamos a agruparlos por pueblos. También tenemos la opción de calcular resúmenes de alguno de los campos que van a presentarse en el informe –optamos por calcula la suma del campo Sueldo- pulsando el botón 112 
  • 113. Corpus Ruiz Fernández  Se finaliza eligiendo la distribución, estilo y nombre a dar al formulario –en pasos, corporativa y Funcionario respectivamente. Nota: Podríamos haber creado un campo calculado en la consulta ConFuncionario para presentar los apellidos y el nombre y haber añadido al informe éste campo y no los del nombre y apellidos. Para personalizar el informe hay que situarse en modo Diseño. Aparecerá una ventana similar a ésta: 113 
  • 114. Access Avanzado 2003  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 información que normalmente aparecería en una página de portada, como un logotipo o un título y una fecha. El encabezado del informe se imprime antes del encabezado de página. 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 función Suma en el encabezado del informe, se calcula la suma para todo el informe. Encabezado de página: Se imprime al principio de cada página. Se utiliza un encabezado de página, por ejemplo, para repetir el título del informe en todas las páginas. 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 estén 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 función Suma en el encabezado de grupo, la suma corresponde al grupo actual. Detalle: Sección en la que aparecen los registros del origen del informe, que pueden ser más 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 información de resumen de sus correspondientes grupos. Pié de página: Se imprime al final de cada página. Los pies de página se utilizan para imprimir números de página o información relativa a la página. 114