Sie sind auf Seite 1von 50

LECCION 1

1- Introduccin avanzada a las Bases de Datos Relacionales


En este curso vamos a profundizar en las caractersticas que convierten a Access en una herramienta
profesional imprescindible para todo tipo de empresas, y en especial para aquellas que necesitan
manejar grandes volmenes de informacin.
ara ello introduciremos el concepto de !ase de "atos #elacional.

En este curso aprenderemos las ventajas que podemos obtener de las bases de datos relaciones
frente a las bases de datos simples$ %eremos los inconvenientes de tener todos los datos en una
nica tabla y la imposibilidad de manejarlos con un mnimo de eficiencia. & e'plicaremos los
fundamentos de las bases de datos relacionales.
Aprenderemos la importancia de una buena planificacin antes de comenzar su creacin. (ambi)n
veremos los tipos de relaciones entre las bases de datos y aprenderemos a crearlas y gestionarlas
Abordaremos los formularios, consultas orientadas a las bases de datos relacionales.
Aprenderemos que son los filtros, sus tipos y como utilizarlos
& acabaremos el curso aprendiendo el uso del asistente para informes no autom*ticos
1
+as bases de datos simples son aquellas que est*n formadas por una sola tabla de datos.
Este tipo de bases de datos son muy f*ciles de crear y utilizar y cubren la mayora de
necesidades de los particulares. or ejemplo para crear y gestionar una agenda telefnica
bastan con los conocimientos de Access ,mprescindible para crear una tabla como esta.
ero si estamos trabajando para una empresa necesitaremos, por ejemplo llevar al da no
solo la agenda con los datos de los clientes, de los proveedores. -i no tambi)n llevar la
relacin de los productos que les hemos comprado o vendido, y esto debe verse reflejado
en nuestro control del almac)n.
Es evidente para cualquiera que haya empleado una tabla de Access que manejar todos
estos datos en una nica tabla es una tarea muy incomoda, principalmente por su
e'agerada longitud, calcula que todos los campos necesarios para llevar un e'haustivo
control sobre los datos de la agenda, de los stoc.s, de las entradas y salidas del almac)n
podra superar los veinte campos de longitud, y tener todos estos campos en una nica
tabla nos obligara a utilizar permanentemente las barras de desplazamiento
2
ero aunque utiliz*ramos informes y formularios para restringir el numero de campos con
los que trabajar de manera simultanea eso no disminuira la ineficacia que implica
introducir una y otra vez los mismos datos en la tabla.
arece que no es mucho trabajo introducir los datos del cliente cada vez que hacemos
una venta. Es lgico querer saber a quien el hemos vendido cada articulo, y tambi)n seria
buena idea tener su numero de tel)fono para hacer un seguimiento de su satisfaccin
respecto a nuestros productos y servicios. (ambi)n deberamos tener su direccin postal,
su /,0, y otros datos fiscales, tales como forma de pago y nivel de cr)dito.
-eguro que cada uno de nosotros podramos pensar un buen numero de datos que nos
resultaran mas o menos imprescindibles para nuestro negocio. ero imagina lo que
significa introducir todos estos datos con cada venta. uede parecer que las ventajas de
una tener una completa bases de datos superan los inconvenientes de tener que
introducir todos esos datos con cada venta.
ero seamos realistas, casi siempre vendemos a los mismos clientes, por norma general
se suele tener una cartera de clientes que en su mayor parte es siempre la misma, es
mas generalmente son un pu1ado de e'celentes clientes los que consumen la mayora de
nuestros productos. Esto implica que para tener actualizada nuestra base de datos
deberamos introducir una y otra vez los mismos datos del mismo cliente con cada
transaccin que realiz*ramos. Ahora pregntese 23u*ntas transacciones realiza al mes
para su mejor cliente4.
El caso de los proveedores es aun m*s esclarecedor. 2-eria lgico teclear una y otra vez
todos los datos del proveedor con cada producto que le pidi)ramos4. /o, desde luego que
no. Eso seria altamente ineficaz.
or no hablar de la gestin de los datos. 3omo la modificacin de todos los registros del
cliente o del proveedor por un cambio de direccin, no seria buena idea tener una base de
datos en la que el cliente tras haberse mudado tuviera activa en las dos direcciones.
ara solucionar estos y otros problemas Access tiene utiliza lo que se denominan las
!ases de "atos #elaciones
3
Planificacin de las bases de datos!
3mo es f*cil intuir una correcta planificacin de las bases de datos antes de comenzar a
crearla nos ahorrar* muchos problemas y dolores de cabeza.. 5 de lo contrario podemos
encontrarnos con datos duplicados, con relaciones inconsistentes, o hasta con la
imposibilidad de obtener informes fiables.
El primer paso es de terminar e'actamente para que vamos a emplear la informacin de
la tabla y a1adir los campos que nos ayuden a obtener y manejar esa informacin. -i no
se tiene claro este punto los problemas de la tabla ira aumentando segn vayamos
avanzando en su desarrollo, hasta que tengamos que volver a dise1ar su estructura.
or ejemplo la tabla de clientes. En ella debe estar todo lo relacionado con los datos
esenciales que necesitemos de los clientes, pero ningn otro.
Es decir lo necesario para saber quien, y como contactar con )l.
uede parecer a simple vista que tambi)n necesitaramos saber qu) compr, cu*nto
dinero pag, qui)n le atendi, etc... pero esos datos no est*n relacionados
e'clusivamente con el cliente, ya que tambi)n est*n relacionado con la tabla de artculos
6qu) compr7 y con la tabla de facturacin 6cu*nto pag7. -i se a1adiera aqu esta
informacin tendramos esos datos duplicados en las otras tablas. & eso es sntoma de
que no esta bien dise1ada nuestra tabla.
8no de los problemas de tener en las manos una herramienta tan potente y vers*til como
Access es que pr*cticamente se puede hacer de todo, eso incluye dise1ar una tabla con
los campos que deseemos, incluso aunque no sea de la mejor m*s eficiente, y a veces es
posible que solo nos percatemos de que la tabla esta mal dise1ada cuando obtengamos
un error en algn informe.
ero si seguimos estos pasos lograremos construir tablas bien dise1adas
El siguiente paso es decidir los campos de la tabla que estamos dise1ando. uede
parecer que la eleccin de los campos es sencilla una vez que tenemos definida la
funcin de la tabla, pero este es un punto delicado.
or ejemplo en nuestra tabla clientes, sabemos que queremos tener almacenado, su
nombre, direccin y tel)fono. 2-on esos tres, realmente, los campos que va a tener
nuestra tabla4
4
odemos ver que hemos separado los campos 9No"bre9 y 9#$ellidos9, y tambi)n el
campo 9direccin9 y 9Cdi%o $ostal9. 2or qu) lo hemos hecho4. ara poder ordenarlos
y agrupar los registros por cada campo. -i no separ*semos el nombre en los campos
9No"bre9 y 9#$ellidos9 no podramos ordenarlos por sus apellidos. 2& en el caso del
campo direccin4. Es conveniente separar el cdigo postal de la direccin porque cuando
realicemos informes o envos postales necesitaremos ordenarlos por el campo cdigo
postal, sin tener en cuenta su direccin.
ara determinar correctamente los campos no hay reglas concretas, la e'periencia es la
mejor ayuda, aunque hay algunas costumbres que pueden ayudar especificar mejor los
campos, como por ejemplo: preguntarte si vas a necesitar acceder a alguna parte del
campo en concreto, si la respuesta es si, entonces debes dividirlo en varios campos.
3rea todos los campos que se necesiten pero que todos los campos tengan una estrecha
relacin con el concepto de la tabla, por ejemplo en la tabla de clientes no es necesario
introducir datos sobre los vendedores. 3rea otra tabla especficamente para ellos.
& por ultimo es innecesario crear campos que se calculen a partir de otros. Es mas til y
e'acto calcularlo cuando se necesite. or ejemplo en el caso de que tengamos la fecha
de nacimiento, no necesitamos tener otro campo para la edad, es m*s eficiente calcularlo
cuando se requiera y no har* falta actualizarlo cada a1o
Introduccin a la creacin de un BD Relacional!
Co"o &e"os visto en el te"a 1. +as bases de datos relacionales no son mas que
mltiples tablas, altamente especializadas y todas ellas referenciandose las unas a las
otras, o utilizando la palabra mas apropiada 9relacion'ndose9 las unas con las otras.
3on ellas tendremos numerosas ventajas, como son no tener que introducir informacin
repetida, ahorrando trabajo y recursos de memoria de ordenador. & tambi)n la facilidad y
rapidez a la hora de realizar labores de mantenimiento, correccin o actualizacin de los
datos de las tablas,
En este tema dise1aremos nuestra primera base de datos relacional, para ello
aprenderemos e'haustivamente, pero de forma sencilla a crear una tabla paso a paso.
%eremos con ejemplos las posibilidades de los tipos de datos de Access. E'plicaremos
las propiedades de los campos y presentaremos la posibilidad de crear y gestionar
indices basados en varios campos
Dise(ar una base de datos con "ulti$les tablas!
Es comprensible que queramos poner a funcionar ya nuestra base de datos. asar
directamente a introducir datos y sacarle provecho a nuestro flamante Access. ero como
hemos visto anteriormente el dise1o de la base de datos previamente a su creacin es un
paso imprescindible y fundamental, en un buen dise1o esta la diferencia entre una base
de datos *gil y funcional o por el contrario encontrarnos con problemas a cada clic de
ratn que nos har* desesperante la mas mnima bsqueda de datos.
or eso vamos a dise1ar lo mas did*cticamente posible un ejemplo para nuestra base de
datos.
-upongamos que trabajamos en una empresa. 3ualquier empresa. (oda empresa tiene
una actividad principal que es vender algo, que en este caso a ese algo lo llamaremos
producto. %amos a partir desde aqu.
+os datos que necesitamos para cada venta son:
;u) hemos vendido 6No"bre de $roducto7, 3uanto hemos vendido 6Cantidad7, A quien
se lo hemos vendido 6cliente7 y /umero de cuenta para cobr*rselo 6NCcliente7.
5
ero segn trabajemos con estos datos necesitaremos otros datos del cliente, como son
el nombre de la empresa para la que trabaja 6E"$resa7, -us apellidos 6#$ellidos7,
uesto que desempe1a 6Puesto7, (el)fono de contacto 6)el*fono7, +os datos para
enviar los pedidos 6Direccin, Poblacin, CP7
ero claro, podramos pedirle algo mas a nuestra base de datos, tambi)n seria
conveniente que cada venta tuviese en cuenta las e'istencias del almac)n y que llegado
el caso se notificase la necesidad de hacer un nuevo pedido al proveedor.
Es evidente que si a1adimos mas campos a nuestra tabla pronto se convertira en un
dolor de cabeza mas que en una ayuda. ara ello debemos unificar los campos por
criterios como ya sabemos.
Empezaremos con la tabla de los datos referidos e'clusivamente al cliente.
Ahora veremos los datos referidos e'clusivamente al producto
;uiz*s sea necesario e'plicar aqu la necesidad de algunos campos. 9Codi%oProducto9
es el campo clave necesario para distinguir unos productos de otros y relacionarlos con
otras tablas.
(al vez no sea tan evidente la necesidad de un campo para el proveedor, ve*moslo mas
detenidamente. En realidad el producto no tiene solo su nombre, digamos que tambi)n
6
tiene apellidos, esta relacionado con la empresa que lo distribuye, no basta decir que
necesitamos producto 9"entifrico<as!lanco9, necesitamos pedrselo a quien pueda
proporcion*rnoslos. & para esto necesitamos los datos del roveedor.
ero la primera norma es agrupar campos por afinidad y aunque es evidente que los
campos del producto dependen de la tabla del proveedor, tambi)n es f*cil ver que la tabla
del proveedor no depende de los productos. Es decir que un solo proveedor tiene muchos
productos pero que adem*s podemos utilizar los datos de la tabla proveedores para otras
funciones distintas, por ejemplo para tener contactos con los comerciales, o para
desarrollar nuevas lneas de negocio.
As pues la solucin es crear un campo que relacione una con otra tabla para aprovechar
todas las ventajas de las bases de datos relacionales, y el vinculo entre las dos tablas es
el campo 9IDProveedor9
%amos a complicar aun m*s las cosas,
En esta tabla de pedidos vemos que hay tres campos de 3digos, el primero
9Codi%oPedido9 es el propio a la tabla 9Pedidos9, la funcin de los siguientes es
relacionar esta tabla con las otras.
=racias al 9Codi%oCliente9 no es necesario introducir en esta tabla los datos del cliente
que realiza el pedido, basta con teclear su numero de cdigo, y Access se encargara de
escribir por nosotros todos los campos que le pidamos, como son el nombre de la
empresa, la direccin, el numero de 3uenta, etc...
3on el campo 9Codi%oProducto9 pasa e'actamente igual, en vez de teclear en cada
pedido una y otra vez todos los datos de todos los artculos, como su nombre, o su precio
o descripcin del producto. Access se encarga de relacionar las dos tablas gracias a este
campo
%amos a crear las tablas como ya sabemos desde la opcion 9Crear tabla en +ista de
dise(o9
%amos a crear primero la tabla 9Cliente9. ,ntroduciremos los campos que hemos dise1ado
en la leccin anterior y la columna descripcin escribiremos una peque1a informacin que
ayude a definir la funcin de cada campo.
Es posible que cause e'tra1eza que los ltimos tres campos los hayamos definidos como
9ti$o de datos9 de 9te,to9 cuando pudiera parecer m*s lgico definirlos como
9nu"*ricos9. +a razn es muy sencilla, solo asignaremos tipos 9nu"*ricos9 a campos
con los que realicemos operaciones aritm)ticas.
Evidentente no vamos a sumar 9)el*fonos9, ni restaremos 9Cdi%os Postales9 y mucho
menos multiplicaremos 9N-"eros de Cuentas9. or esta razn le asignaremos a estos
campos un tipo 9te,to9.
7
Al campo 9Cdi%oCliente9 le asignaremos tipo 9#utonu"*rico9 para asegurarnos que no
haya ningn cliente repetido, Access se encarga autom*ticamente de asignar valor para
cada nuevo registro que creemos.
En la tabla 9$edidos9, al contrario que en clientes, vemos que abundan los campos
9Nu"*ricos9, hay algunos que si utilizaremos para hacer operaciones con ellos, por
ejemplo el campo 9Cantidad9, es evidente que lo multiplicaremos con el campo
9Precio.nidad9 para calcular el precio del pedido. ero hay otros campos, como
9Cdi%oCliente9 y 9Cdi%oProducto9 que no vamos a utilizar en ninguna operacin
aritm)tica,
2Entonces por qu) le asignamos tipos 9Nu"*ricos94 +a respuesta es sencilla, esos
campos los vamos a utilizar para relacionar el pedido con las tablas 9cliente9 y
9$roducto9. +a nica forma relacionar dos tablas es que las dos tablas contengan un
campo comn por el cual poder referenciarse. -i en la tabla 9clientes9 tenemos el campo
9Cdi%oCliente9 y es 9autonu"*rico9, en la tabla pedido tenemos que tener tambi)n un
campo 9Cdi%oCliente9, y tendr* que ser tambi)n num)rico. ero 2entonces son iguales
los tipos num)ricos y autonum)ricos4. -i. 8n tipo autonum)rico, es un campo num)rico al
cual Access se encarga autom*ticamente de asignarle un valor secuencial y nico, esto
es lo mejor para que no haya registros duplicados que pueden arruinar nuestra base de
datos.
3uando terminemos de crear la tabla deberemos guardar la tabla. odemos hacerlo
pulsando en el icono guardar de la barra de herramienta.
+a primera vez que guardamos cada tabla nos avisa y pregunta si queremos definir una
clave principal. En el te'to nos avisa que no es necesaria pero si recomendable. En
nuestro caso, al estar trabajando con tablas relacionales es imprescindible contestar
afirmativamente a esta ventana de dialogo, ya que cada tabla podr* ser referenciada por
las dem*s a trav)s de esta clave principal.
8
+a ultima tabla que vamos a definir como ejemplo ser* la de productos
(odos los elementos de esta tabla han sido ya estudiados y no entra1an ninguna
dificultad, vemos como hemos definido el campo 9Cdi%oProducto9 como clave principal,
lo sabemos por el icono de la llave que est* junto al 9No"bre del ca"$o
)i$os de datos
En la tabla pedido hemos a1adido otros campos para e'plicar did*cticamente los dem*s
tipos de datos e'istente que podemos utilizar cuando la ocasin lo requiera.
&a conocemos los tipos de datos 9#utonu"*ricos9, 9Nu"*ricos9, 9)e,to9.
El 3ampo 9/ec&a0&ora9, se utiliza para almacenar 0echas y horas, la fecha de la compra,
la hora de la salida del producto...
El campo 91i0No9, tambi)n conocidos como campos lgicos, solo pueden presentar dos
estados, -i o /o. -e utiliza principalmente para ahorrar espacio y tiempo, por ejemplo si
tenemos una base de datos y queremos saber si el cliente esta casado o soltero, es m*s
sencillo poner un campo -i>/o, que teclear cada vez 9Casado9, 91oltero9. 5 en el caso
de nuestra tabla para comprobar el estado de una tarea pendiente.
El campo 92e"o9, se utiliza cuado en el campo pretendemos a1adir informacin que no
sepamos a priori cuanto ocupar*.
El campo 92oneda9, debe utilizarse en lugar del num)rico cuando manejemos precios y
otras cantidades monetarias. +a razn de esto lo veremos mas detenidamente en la
leccin de las propiedades de los campos, pero para dar un peque1o avance diremos que
el formato num)rico puede ser muy vers*til, quiz*s demasiado, para un campo tan
9
definido como 92oneda9,
El campo 9Ob3eto OLE9, puede utilizar im*genes, audio y otros formatos como si fuera un
dato m*s. -e puede utilizar para a1adir una fotografa del articulo o una grabacin de
sonido que acompa1e la ficha del registro que queramos visualizar
-e puede tener mas informacin sobre los tipos de datos disponibles en Access,
pulsando la tecla /1 cuando tengamos el cursor situado en la casilla tipo de datos de la
primera fila
LECCION 4
Pro$iedades de los ca"$os !
10
+a ventana de dise1o de la tabla esta dividida en dos partes, la parte superior se utiliza
para introducir las caractersticas b*sicas de los comandos, que hemos visto en lecciones
anteriores.
En la parte inferios introduciremos las propiedades de los campos.
3omo se puede ver, en la parte inferior hay dos pesta1as, la primera de ellas 9%eneral9
se utiliza para definir las propiedades. +a segunda pesta1a 9b-s5ueda9 la trataremos en
otra ocasin m*s oportuna.
+as propiedades de campos varan segn el tipo de datos que tenemos se1alado en cada
momento,, por ejemplo las propiedades de un campo autonum)rico son: 9)a"a(o del
ca"$o9, 9Nuevos +alores9, 9/or"ato9, 9)itulo9, 9Inde,ado9
+as propiedades para un campo num)rico son: 9)a"a(o del ca"$o9, 9/or"ato9,
9Lu%ares deci"ales9, 92ascara de entrada9, 9)itulo9, 9+alor $redeter"inado9, 9Re%la
de validacin9, 9)e,to de validacin9, 9Re5uerido9, 9Inde,ado9
11
Indices basados en varios ca"$os!
Acab*bamos el tema anterior con la propiedad de campo 9Inde,ado9. Este campo sirve
para que Access encuentre mucho m*s r*pido un dato de ese campo en concreto. Al
marcar ese campo como 9Inde,ado9 Access construye un ndice para )l.
8n ndice parece e'actamente lo que es, funciona igual que los ndices de los libros, se
ordenan los registros de forma que Access cuando quiera ir a uno en concreto lo busca
primero en su ndice y as llega a )l m*s r*pido.
Access hace todo esto de manera transparente al usuario, es decir que nosotros no lo
vemos y no nos damos cuenta de nada, bueno, si nos damos cuenta de que las
bsquedas se hacen mas r*pidamente.
+a propiedad de campo 9Inde,ado9 tiene tres opciones:
/o: /o crea ningn ndice para el campo, o si lo tiene ya lo borra
-i 63on duplicados7: 3rea un ndice para este campo
-i 6-in duplicados7: 3rea un ndice sin duplicados
Esta ultima opcin significa que no podr* haber datos que se repitan, por ejemplo no
podremos crear un ndice en un campo /ombre si dos o m*s registros se llaman igual.
odemos crear tantos ndices como queramos, pero deberemos tener en cuenta de que
estos aumentan mucho el tama1o de la base de datos, as pues solo es aconsejable
crear ndices de aquellos campos que sepamos que vamos a utilizar asiduamente para
buscar registros.
En el men 9+er9, tenemos la opcin 96ndices9
ulsando en esta opcin veremos todos los ndices que hemos creado para la tabla
%emos que para la tabla 9Pedidos9 hemos definido dos ndices, uno para
9Codi%oPedido9 y otro para 9+endedor9. En la lista de ndices aparentemente hay otro
llamado 9Pri"ar78e79, pero es el mismo que 9Codi%oPedido9, recordemos que
establecimos que 9Codi%oPedido9 fuera la clave principal de la tabla pedido y por eso
hay en toda tabla con una clave definida hay un ndice llamado 9Pri"ar78e79, que hace
12
referencia al campo 9clave9, independientemente de los demas indices que hayamos
creado.
En la zona de las 9Pro$iedades del 9ndice9 , tenemos tres caractersticas
9Princi$al9: es la caracterstica de la clave de la tabla, solo puede haber un ndice que la
tenga
9:nica9: indica si puede haber valores duplicados o no
9I%norar nulo9: -e e'cluye del ndice los valore nulos, por ejemplo no se ordenan los
registros vacos
Introduccin a las Bases de datos Relacionales #vanzadas!
A estas alturas ya sabemos que la principal caracterstica de las bases de datos
relacinales es que distribuyen la al informacin entre varias tablas, en vez de
compactarla en una sola,
+a ventaja m*s evidente es el ahorro de trabajo que supone el no vernos obligados a
introducir una y otra vez la misma informacin repetida. ero hay otras ventajas$ como es
el ahorro de espacio de memoria, a priori parece que hoy en da este es el menor de los
inconvenientes pero una tabla mal dise1ada, con campos intiles, ndices olvidados
puede multiplicar su tama1o lentamente al principio pero luego aumentar sus necesidad
de recursos de forma astronmica con el uso hasta llegar a obligarnos a replantear
nuestro dise1o..
?ay otra razn mas, la facilidad para el mantenimiento de los datos, si cambia el dato de
un proveedor solo tenemos que cambiar un dato y toda la base de datos se actualizar* en
el instante
Esto se logra interconectando las tablas entre s, esto se hace a trav)s de los campos
claves que ya conocemos, pero es importante conocer tambi)n que dependiendo de la
forma que relacionemos las tablas el comportamiento de la base de datos puede variar.
or ejemplo al realizar una bsqueda o al imprimir un informe.
En esta leccin aprenderemos los distintos tipos de relaciones que e'isten y su aplicacin
a nuestras tablas.
Este es, con mucho, el tema m*s terico del curso, pero intentar) abordarlo de la forma
m*s did*ctica posible.
)i$os de Relaciones!
13
Relacin de uno a "uc&os
+a relacin de uno a muchos es el tipo de relacin m*s comn que podemos
encontrarnos.
En las relaciones de este tipo cada registro de la tabla, a la que llamaremos 9tabla
$adre9, puede tener mas de un registro enlazado en otra tabla, a la que llamaremos
9tabla &i3a9.
ero cada registro de la tabla hija solo puede tener un registro enlazado en la 9)abla
$adre9.
or ejemplo en nuestra base de datos un cliente puede hacer muchos pedidos, pero cada
pedido solo puede haber sido realizado por un solo cliente. Este es un ejemplo de la
relacin uno a muchos
Relacin de "uc&o a "uc&os
En las relaciones de este tipo, cada registro de la 9tabla $adre9, puede tener mas de un
registro enlazado en la 9tabla &i3a9. & cada registro de la tabla hija, puede tener enlazado
mas de un registro de la tabla padre
En nuestra base de datos por ejemplo, mas adelante, deberemos tener una tabla con los
distribuidores y otra tabla con los productos. -i queremos poder escoger la mejor oferta
de nuestros proveedores, deberemos poder cotejar las distintas ofertas de los mismos
productos. Este es un ejemplo de relacin muchos a muchos, en el que tenemos varios
distribuidores para cada producto y cada distribuidor puede ofertarnos varios productos
Relacin uno a uno
En las relaciones de este tipo cada registro de la 9)abla $adre9 solo puede tener un
registro enlazado en la 9tabla &i3a9, y cada registro de la 9tabla &i3a9 solo puede tener
como m*'imo un registro enlazado con la 9tabla $adre9.
8n ejemplo de este tipo de relaciones podra ser por ejemplo una tabla que relacionara
cada trabajador con otra tabla en la que guardara su 93urriculum %itae9, es decir que
cada trabajador solo tiene un currculo y cada currculo solo tiene hace referencia a un
trabajador.
Inte%ridad Referencial
+a integridad referencial se refiere a un conjunto de normas que nos aseguran que los
datos se mantendr*n correctamente relacionados una vez establecida la relacin y de
que no se podr*n eliminar datos accidentalmente.
+a primera de estas reglas viene a decir que no puede haber registros en una tabla hija
que no est)n enlazados a la tabla padre. En el ejemplo de nuestra base de datos: (odos
los pedidos deben haber sido encargados por algn cliente. /o puede haber pedidos sin
14
clientes que lo hayan encargado.
El sistema de integridad referencial se encarga de comprobar que cuando introducimos
algn pedido el cliente al que se lo asignamos e'ista previamente en la tabla de clientes.
+a segunda de estas reglas viene a decir que no se puede borrar ningn registro de la
tabla padre si esta relacionado con registros de las tablas hijas. Es decir Access
comprueba que antes de borrar algn registro en la tabla clientes, no haya pedidos
relacionados con ese cliente en la tabla pedidos.
Introduccin a la creacin de Relaciones!
En esta leccin dejaremos de lado la teora y abordaremos la practica de este apartado.
%eremos como crear relacin y como gestionarla para sacarle todo el provecho a esta
caracterstica capital de las bases de datos relacionales.
-abemos que para relacionar dos tablas es necesario que ambas tengan un campo en
comn que Access utilizara para relacionarlas. ara ello es necesario que ese campo
deba cumplir algunas caractersticas, por ejemplo:
El campo debe ser del mismo tipo en ambas tablas 6num)rico@num)rico, o te'to@te'to...7
(ambi)n es necesario que el tama1o del campo sea el mismo en las dos tablas, no sera
posible relacionar dos tablas, si el campo vinculado en una tabla tiene solo A digito, del B
al C, y en la otra tabla el campo tiene D dgitos, del B al ECCC, 2con quien relacionamos los
ECFC registros posibles restantes4 ...
-i en una 9tabla $adre9 tenemos definido le campo con el tipo 9autonu"*rico9, en la
9tabla &i3a9 tendremos que asignarle al campo el tipo 9nu"*rico
Creacion de Relaciones!
El primer paso es 9abrir9 la base de datos como ya sabemos
8na vez que tengamos abierta nuestra base de datos, ejecutaremos el comando
9;erra"ientas9, 9Relaciones9.
+a primera vez la venta aparecer* vaca, y sobre ella aparecer* otro cuadro de dialogo
92ostrar tabla9.
15
ara crear la relacin entre las tablas tenemos primero que seleccionar una a una las
tablas que queramos relacionar, marc*ndola y pulsando el botn agregar, antes de
seleccionar la siguiente.
/osotros vamos a relacionar clientes y pedidos, una vez que hayamos agregado las dos
tablas, pulsaremos el botn cerrar
Ahora vamos por fin a crear la relacin entre estas dos tablas. Arrastraremos con el ratn
el campo que queremos relacionar desde la lista de campos de la 9tabla $adre9 &asta el
campo correspondiente de la 9tabla &i3a9. /osotros vamos a relacionar el campo 9cdi%o
cliente 9 de la tabla padre , con el campo 9Cdi%o Cliente9 de la tabla hija
Al arrastrar el campo 9cdi%o cliente9 desde la tabla cliente hasta el campo homnimo
de la tabla pedido, surge una nueva ventana de dialogo
16
En la parte superior aparecen las tablas y campos que forman la relacin, en la parte
inferior se definen las caractersticas de la relacin.
En la pro'ima leccion las veremos una a una
Creacin de Relaciones II!
3ontinuamos donde lo dejamos en la leccin anterior:
%amos a verla una a una:
+a primera 9E,i%ir inte%ridad referencial9: &a hemos estudiado este concepto. -i
quieres marcar esta opcin es necesario que el campo relacionado de la tabla padre sea
la clave principal o tenga un ndice nico, y que adem*s los campos tengan el mismo tipo
de datos.
Al marcar esta casilla, se activan las dos siguientes para que podamos se1alarlas o no,
segn nuestra conveniencia
3on la opcin 9#ctualizar en cascada ...9 cada vez que se cambie un registro de la clave
principal de la 9tabla $adre9 Access actualizara autom*ticamente el valor del campo
correspondiente al nuevo dato en todos los registros relacionados.
3on la opcin 9Eli"inar en cascada...9 cada vez que se elimine un registro de la 9tabla
$adre9, Access eliminara autom*ticamente los registros relacionados en la tabla
secundaria
ATENCIN. +a integridad referencial por defecto no permite que se eliminen registros de
la tabla padre, cuando hay registros de la tabla hija que dependen de ellos. -i pulsamos
la opcin 9eli"inar en cascada...9 Access, para no violar el principio de integridad
referencial borrara TODOS los registros de la tabla hija que dependan de este dato de la
tabla padre. As que aunque Access pida confirmacin para realizar esta accin, aconsejo
prudencia a la hora de utilizarlo. /o sera la primera vez que alguien se tira de los pelos
por haber borrado todos los datos del cliente principal y todas las operaciones
relacionadas con el por eliminar un 9insignificante9 registro en una tabla poco utilizada.
8na vez que pulsemos aceptar veremos esta pantalla
17
Aqu se nos muestra las tablas que hemos relacionado$ 9Clientes9 y 9Pedidos9. & el
campo por que el que est*n relacionados unidos por una lnea 9Cdi%o Cliente9 en la
tabla 9Clientes9, con la campo 9Cdi%o cliente9 de la tabla pedido. As como el tipo de
relacin que hemos creado.
%emos que junto al 9Cdi%o cliente9 de la tabla clientes, hay un 9A9, y juntos al 9Cdi%o
cliente9 de la tabla pedidos, est* el smbolo 9infinito9 que Access asigna al valor
9muchos9.
Es decir nuestra relacin es de tipo 98no a <uchos9, que ya hemos visto que significa en
temas anteriores.
Ahora debemos guardar la relacin, en el caso de que queramos conservarla, como ya
sabemos, pulsando el icono guardar de la barra de herramientas.
<estin de Relaciones!
%amos a ver como revisar o modificar las relaciones que tengamos establecidas en la
base de datos. El procedimiento en los dos casos es muy similar al que hemos utilizado
para crear relaciones. Abri)remos la ventana de relaciones, como ya sabemos
"esde aqu podemos ver las relaciones establecidas en la base de datos actual,
podemos hacerlo de dos maneras.
-i queremos ver todas la relaciones definidas pulsaremos el botn derecho del ratn en la
ventana 9Relaciones9, 92ostar todo9, aqu se mostraran todas las relaciones.
18
-i queremos ver las relaciones definidas para una tabla concreta tambi)n en el botn
derecho del ratn en la ventana 9Relaciones9, elegiremos 92ostrar tabla9, y en la
siguiente ventana de dialogo, elegiremos la tabla sobre la que queramos ver la relacin.
odemos Agregar tablas a la ventana de relaciones como ya sabemos, y eliminarlas
marc*ndolas y pulsando el botn suprimir.
ara editarla una relacin solo tenemos que hacer doble clic sobre la lnea que la indica y
se activara el dialogo modificar relaciones
ara eliminarla una relacin solo tenemos que pulsar el botn derecho del ratn sobre la
9relacin9, con 9relacin9me refiero a la lnea que une una con otra tabla. -e despliega
una ventana de dialogo que nos permite tanto modificar la relacin como eliminarla.
En la pro'ima leccin veremos como relacionar varios campos en una tabla
<estin de Relaciones II!
%amos ahora a ver como relacionar varios campos en una tabla.
or ejemplo nuestra tabla pedidos esta relacionada con la tabla clientes por el campo
=cdi%o cliente9 y con la tabla productos por el campo 9cdi%o $roductos9
19
rimero agregaremos la tabla productos desde la ventana de dialogo mostrar tabla, a la
que podemos acceder tanto desde la barra de herramientas como pulsando el botn
derecho del ratn. 8na vez seleccionada la tabla, pulsaremos 9a%re%ar9
El siguiente paso es arrastrar el campo 9cdi%o $roducto9 desde la 9tabla $adre9 ,
9Producto9, hasta la 9tabla &i3a9, 9Pedidos9. or defecto vemos que la lnea de la
relacin no tiene ningn smbolo, esto significa que la relacin es 9de <uchos a <uchos9,
Esto es debido a que no hemos marcado la casilla de integridad referencial, es decir que
podra haber pedidos con muchos cdigos de productos y muchos productos con muchos
pedidos,. Esto es evidentemente errneo, pues sabemos que aunque un producto puede
haber sido pedido muchas veces, un nico pedido solo hacer referencia a un solo
producto, lo contrario dara lugar a errores a la hora de crear la factura, pues no
sabramos a que producto haramos referencia
20
-i pulsamos la casilla 9E,i%ir inte%ridad referencial9, vemos como se normaliza la lnea
de relacin mostrando la relacion 98no a muchos9.
Introduciendo datos!
ara introducir datos en una tabla hay se puede hacer de varias formas, la mas sencilla es
hacerlo desde la ventana de hoja de datos, desde aqu podremos introducir, modificar y ver
los datos e'istente en cada tabla.
ara acceder a la ventana de datos solo hay que seleccionar la tabla que deseamos utilizar
y pulsar el botn 9#brir9
+a ventana que se abrir* a continuacin tiene algunas particularidades que vamos a tratar
ahora:
+o primero que nos sorprende es que no est*n visibles todos los campos que hemos
dise1ado, no hay porque preocuparse, esto ocurre sencillamente porque la longitud total de
21
los campos es superior al tama1o de la venta. ara acceder al resto de los campos solo
hay que utilizar la barra de desplazamiento horizontal que esta en la esquina inferior
derecha de la venta.
En la ultima fila, a la izquierda de la barra de desplazamiento, hay una serie de botones que
sirven para desplazarse entre los registros de la tabla. El primero, por ejemplo, nos
desplaza al primer registro de la tabla, los siguientes no encierran mayor dificultad. El ultimo
botn situara el punto de insercin en un nuevo registro listo para introducir nuevos datos.
En cuanto pulsemos la primera tecla en el interior de cualquier campo, autom*ticamente
aparecer* un registro nuevo en blanco debajo del actual. Access creara un nuevo registro
cada vez que se comienza a escribir en el ultimo.
%amos a introducir esta serie de registros para ir practicando: .
Cdi%o cliente: Este campo es autonum)rico, esto significa que Access ira asign*ndolo
secuencialmente a cada registro en el mismo orden que nosotros vayamos creando
registros
E"$resa: <icrosoft
No"bre cliente: Gilliam
#$ellido cliente: =ates
Puesto: rogramador
Direccin: first st
Poblacin: #edmon
)el*fono:CBB@DBB@AAA
CP: AAAAA
Nu"ero CC:ABABABAB
El resto de los registros del ejemplo ser*n:.
Aple, !ruce, Gine, accionista, main st ,san francisco, CBB@DBB@HHH, HHHHH, HBHBBHBHB
,ntel, Ien, !roc.man, 3omunicador, Jall -t, /eJ &or., CBB@DBB@KKK, KKKKK,KBKBKBKB
&ahoo, #onald, <c"onnald, asesor de imagen, campos elseos, aris, CBB@DBB@EEE,
EEEEE, EBEBEBE
Es evidente que estos registros son ficticios, cualquier semejanza con la realidad es pura
coincidencia, y pido a los titulares de los tel)fonos, nombres, y marcas registradas
disculpas por las confusiones creadas por estos datos.
<i tabla ha quedado asi:
Edicin de re%istros!
Ahora que ya sabemos introducir registros nuevos, vamos aprender a modificar los
antiguos, esto se denomina labores de mantenimiento de la tabla.
%amos a abrir la tabla, en el caso de que este cerrada.
22
+a tabla aparecer* de esta manera
3uando nos movamos por la tabla, por defecto, estaremos en el modo desplazamiento,
esto significa que si utilizamos las teclas de cursor desde una de las casillas, nos
desplaceremos a la siguiente en la direccin que indique la tecla cursor que pulsemos.
ara pasar al modo edicin tendremos que pulsar la tecla 0H, esto tambi)n se obtiene por
defecto al movernos por la tabla con el ratn.
ara distinguir en que modo estamos, solo hay que fijarse en el campo en el que estamos
situados, si est* seleccionado estaremos en el modo desplazamiento.
En cambio si vemos el cursor, estaremos en el modo edicin.
+a diferencia entre los modos consiste en que en este ultimo podremos modificar el
contenido del campo sin introducir toda la informacin otra vez, y tambi)n que al utilizar los
cursores nos desplazamos por el interior del campo, y no pasamos a las celdas laterales.
8tilizando estas teclas podremos modificar el contenido de las tablas.
?ay otras teclas tiles para el mantenimiento de las tablas, como son las teclas de inicio,
fin...
#especto a la tecla suprimir deberamos ser cuidadosos, pues mientras que solo un
caracter cuando esta en el modo edicin, estando en el modo desplazamiento borra todo el
contenido de la casilla.
ero no hay porque preocuparse Access, contiene en el men 9Edicin9, el comando
23
deshacer, que salvo algunas e'cepciones nos permite deshacer todas los errores y
equivocaciones que cometamos en nuestro trabajo con Access
?ay cierta coleccin de campos que no se nos permite editar. 3omo son los campos
autonum)ricos, ya que Access introduce autom*ticamente los valores en estos campos.
(ambi)n los campos calculados, de algunas consultas, de algunos formularios. Estos tipos
de campos los veremos m*s adelante, por eso no vamos a tratarlos aqu.

<estin de ca"$os entre distintas tablas
Access permite la utilizacin de las instrucciones 9Co$iar9, 92over9 y 9Cortar9 datos, no
solo en la misma tabla, sino que permite hacerlo entre distintas tablas.
En esencia el mecanismo es id)ntico al que estamos acostumbrados a utilizar en el
entorno GindoJs.
rimero seleccionar. Access, permite que seleccionemos un dato, una celda, un campo,
un registro al completo, una columna o un conjunto de filas y columnas... simplemente
marcando con el puntero del ratn y arrastrando la seleccin
& tambi)n:
8na vez que tengamos marcado los datos que necesitemos copiar en la otra tabla,
podemos hacerlo tanto desde la instruccin 9co$iar9 de el men 9Edicin9, como desde
la instruccin 9co$iar9 en el men que se despliega al pulsar el botn derecho del ratn.
3uando trabajamos con distintas tablas, Access crea un duplicado de los datos que
tengamos seleccionados en el portapapeles. Access mantendr* estos datos en el
portapapeles aunque cerremos una tabla, una base de datos, e incluso el mismo Access.
+o que permite pegar datos en tablas distintas en tablas distintas de las que proceden los
datos
24
Al copiar registros entre distintas tablas deberemos tener en cuenta una serie de detalles:
or ejemplo Access pega los datos en el mismos orden en el que est*n en la tabla
original. -i la tabla de origen tiene mas campos que la de destino, Access no pegara los
datos de los campos que sobren. or el contrario, si la tabla origen tiene menos columnas
que la de destino, Access dejara en blanco los campos que sobren.
Access antes de terminar la pegar los datos nos pide confirmacin para pegar los
registros que hemos copiado.
odemos encontrarnos ciertos problemas a la hora de pegar los datos.
or ejemplo cuando el dato que intentamos copiar no es compatible con el tipo de dato
del campo, es intil intentar pegar una columna tipo te'to en un campo de tipo num)rico.
(ampoco podemos hacerlo cuando el dato que queremos pegar es mas grande que el
tama1o de campo destino. 5 cuando el dato provoca una duplicacin en el campo clave o
en cualquier otro campo definido como inde'ado sin duplicado.
-iempre que se produzca un error al pegar, Access creara una tabla llamada 9Errores de
$e%ado9 y colocara en ella los datos que no haya podido pegar en la tabla de destino. Asi
que es conveniente no perderla nunca de vista y comprobar los problemas que la
causaron
+a tabla de 9Errores de $e%ado9 podemos abrirla desde la venta de !ase de datos y
gestionarla e'actamente igual cualquier otra trabla.
25
Introduccin a los /or"ularios!
?asta ahora hemos estado trabajando con los datos en el formato de tablas, al utilizarlas
nos hemos encontrando con ciertas dificultades e incomodidades, como es ver solo una
parte de los datos cuando no caben en la celda, el vernos obligados a utilizar las barras
de desplazamiento.
+os formularios son una funcionalidad que tiene Access que permite mostrar y gestionar
de una forma mas adecuada los registros para trabajar con ellos.
+a diferencia principal es que vemos a la vez todos los datos de un registro sin necesidad
de utilizar las barras de herramientas. 5tra diferencia es que la informacin puede
mostrarse y organizarse en pantalla como deseemos y no en el formato de la tabla al que
estamos habituados.
ara acceder a los formularios solo hay que pulsar con el puntero del ratn en la opcin
9/or"ularios9 situada en la ventana 9Base de datos9, en la parte de la izquierda,
cambiando el contenido de la ventana 9base de datos9
Creacin de for"ularios "ediante #sistente $ara for"ularios!
Access permite crear formularios tanto en 9vista de dise1o9 como desde los 9Asistentes9.
26
Access proporciona una serie de asistentes para crear formularios que aceleran y facilitan
mucho la creacin de los formularios, con solo indicarle la tabla que queremos utilizar.
Esto lo hacemos eligiendo en la ventana superior la tabla sobre la que deseamos crear el
formulario
En la ventana inferior izquierda, titulada 93ampos disponibles9, tenemos un listado de
todos los campos de la tabla, con los botones centrales podemos seleccionar los campos
que deseemos tener en nuestro formulario uno a uno, utilizando el botn superior, o todos
a la vez , pulsando el segundo botn. odemos utilizar los dos botones inferiores para
deshacer nuestras selecciones en el caso de que deseemos rectificar.
8na vez que hayamos seleccionado los campos que deseemos que tenga nuestro
formulario pulsaremos el botn 9-iguiente9.
En la siguiente ventana de dialogo se nos preguntara por el tipo de distribucin deseamos
apicar al formulario
27
/osotros vamos a elegir esta vez el dise1o en columnas y pulsaremos siguiente. En la
siguiente ventana se nos preguntara por el estilo que deseamos aplicar a nuestro
formulario.
+o que nos pregunta Access en este cuadro de dialogo es que tipo de decoracin
queremos aplicar a nuestro formulario, segn posicionemos el cursor en uno u otro en la
ventana de la izquierda se nos mostrara un ejemplo del fondo que podemos aplicar a
nuestro formulario. 8na vez que tengamos elegido el estilo, pulsaremos el botn
siguiente.
28
En esta ventana se nos pregunta por el titulo que deseemos para nuestro formulario, as
como si queremos abrir ya el formulario o si primero queremos modificar el dise1o del
formulario, esto ultimo lo dejaremos para la siguiente leccin.
Ahora pulsaremos el botn 90inalizar9 y veremos como ha quedado nuestro formulario
Este es nuestro flamante nuevo formulario
3omo vemos, tenemos accesible todos los campos del registro, la forma de moverse por
ellos es m*s natural y cmoda. 3on los botones de la parte inferior de la ventana
podemos movernos entre los distintos registros de la tabla, y con el botn de la derecha
creamos un registro en blanco para introducir nuevos datos.
Pro$iedades avanzadas de las consultas !
+as propiedades aparecen en todos los elementos de Access, tambi)n en las consultas,
29
lo que permite aumentar el control sobre su funcionamiento.
ara ver las propiedades de la consulta debemos tener abierta la consulta en ventana de
vista de dise1o
& situando el cursor en la barra del titulo de la consulta, debemos pulsar el botn derecho
del ratn, para abrir el men emergente. Asegrate de que no tienes marcado ningn
campo, o tabla, en caso contrario en vez de mostrarte las propiedades de la consulta te
mostrara nicamente las propiedades del campo se1alado
& en esta venta seleccionar la opcin 9$ro$iedades9.
30
"e entre estas propiedades solo vamos a ver las mas importantes, si deseas m*s
informacin del resto, puedes pulsar /1 despu)s de situar el cursor en la casilla de la
propiedad que te interese.
Descri$cin: Aqu podemos describir someramente la consulta, es una gran ayuda
cuando tenemos una gran cantidad de consultas o si ha pasado ya algn tiempo desde
que la creamos.
2ostrar todos los ca"$os: Eligiendo 91i9, mostrara todos los campos en la cuadricula
de dise1o, aunque tengan desmarcada la casilla 9"ostrar9
+alores su$eriores: Es muy til cuando tenemos tablas con muchos registros, si
indicamos D, solo aparecer*n en la hoja de datos los D registros que tengan los valores
mayor en el primer campo num)rico que aparezca en la cuadricula de la ventana de
dise1o.
+alores -nicos: -i elegimos 91i9, solo aparecer*n en la hoja los valores de todos los
campos que sean nicos.
Re%istros -nicos: Access nos mostrara valores sin repetir.
Aunque a primera vista no nos parezca muy util este conjunto de opciones nos ayudara
mucho en nuestro manejo diario de las consultas.
Ca"$os Calculados !
+os campos calculados permiten utilizar, en la columnas de la vista de dise1o de la
consulta, informacin que no proviene de un campo, sino de una operacin con valores
de otros campos.
%amos a verlo mejor con un ejemplo, en nuestra tabla 9$roducto9.
31
(enemos listados, el producto, el precio de la unidad y tambi)n las unidades en
e'istencias.
-upongamos que necesitemos conocer cual es el valor total de los artculos que tenemos
en el almac)n.
-era sencillo calcular, el total de seria el resultado de multiplicar las
9.nidadesEnE,istencia9 por el 9Precio.nidad9 de cada articulo.
%amos a hacerlo, o mejor dicho, vamos a dejar que Access lo haga por nosotros.
3omo ya sabemos utilizar el asistente, vamos a aprender ahora a hacerlo desde al
ventana de dise1o.
El primer paso, como siempre es acudir a la ventana de base de datos abrir la ventana de
las consultas.
& desde aqu
%amos a pulsar la opcion crear una consulta en vista de dise1o.
En la ventana 92ostrar tabla9 seleccionaremos la tabla 9Productos9
32
& una vez seleccionada, pulsaremos agregar.
En la venta de 9Consulta de seleccion9, en su seccion superior, aparecera la tabla que
hemos escogido 9Productos9, con todos los campos que la componen.
/osotros solo necesitaremos 9No"breProducto9 , 9Descri$cionProducto9,
9Precio.ndidad9 y 9.nidadEnE,istencias9.
Ca"$os Calculados II!
3on el raton pincharemos sobre los campos que necesitemos y los 9arrastraremos9 hasta
la cabecera de las columnas de la cuadricula
%emos como autom*ticamente las filas 9)abla9 y 92ostrar9 se rellenan con solo situar en
33
la
cabecera de cada columna el campo correspondiente.
ero aun falta el campo calculado. "ijimos que necesit*bamos conocer cual es el valor
total de los artculos que tenemos en el almac)n. "educimos que el total de seria el
resultado de multiplicar las 9.nidadesEnE,istencia9 por el 9Precio.nidad9 de cada
articulo.
%amos a hacerlo paso a paso.
rimero es elegir un campo vacio, y ponerle el nombre que desemos para nuestro nuevo
campo, 2;u) tal 9)otal94
Ahora debemos escribir la e'presin de calculo de la siguiente manera:
)otal! > ?@> ? , es importante que respetemos el espacio en blanco tras los dos puntos,
dentro de los corchetes iran los nombres de los campos que queramos utilizar para los
calculos.
En definitiva, nuestra e'presin quedaria asi$ )otal!
>Precio.nidad?@>.nidadEnE,istencia?
or ultimo solo tendremos que marcar la opcion 9"ostrar9 para visualizar el resultado
cuando ejecutemos la consulta.
ulsaremos el icono 9Ejecutar9, como ya sabemos y este ser* el resultado
C'lculos sobre las tablas !
(ambi)n podemos realizar c*lculos sobre todos los registros de una tabla sin tener que
agruparlos por ningn concepto y sin condiciones de ningn tipo.
Esta se puede utilizar para saber el total de.. or ejemplo: el total de clientes, o el total de
artculos que tenemos en el almac)n, o el precio medio de las ventas del ejercicio.
%amos a realizar el conteo de los productos que tenemos en el almac)n.
+o primero que haremos ser* crear una consulta a partir de la tabla 9roductos9. En la
que solo seleccionaremos el campo 98nidadesEnE'istencia9, como ya debemos saber
hacerlo.
34
-i ejecutamos la consulta obtendremos la siguiente ventana
Ahora en la venta vista de dise1o de la consulta, sobre la cuadricula pulsaremos el botn
derecho del ratn
ulsaremos en (otales y veremos que en la cuadricula se ha agregado una nueva fila,
llamada 9(otal9. or defecto aparecera con el valor 9agrupar por9
35
ero si desplegamos la persiana de las opciones de 9(otal9, vemos que hay una larga
lista de posibles ordenes para aplicar al campo.
/osotros, esta vez, queremos 9-umar9 el total de las e'istencias, pero tambi)n podramos
averiguar el valor minino, el m*'imo, el valor promedio, entre otras muchas otras
funciones.
Al ejecutar la consulta, este ser* el resultado.
C'lculos sobre los re%istros !
En los temas anteriores hemos utilizado todos los registros de la tabla, pero habr*
situaciones en las que nos interesara obtener informacin, no de todos los registros de la
tabla, sino solamente de un grupo de ellos. or ejemplo ver el montante los productos
que hemos vendido, pero agrupados por clientes, por ejemplo.
ara conseguirlo vamos a crear otra tabla. ero esta vez tendremos que elaborarla un
poco mas que de costumbre. or ahora vamos a crear la tabla tal como estamos
acostumbrados
%eamos, queremos saber el total de los productos que hemos vendido, agrupado por
clientes.
Entonces es evidente que necesitamos las tablas tanto de producto como de clientes.
36
& en la cuadricula introducimos los campos que necesitamos manejar
"e la tabla 3lientes, necesitaremos el campo /ombre3liente. & en la tabla producto
buscaremos el campo que nos aporte el dato que necesitamos
En este caso caso elegiremos el campo 98nidadEnE'istencia9, 2or qu) elegimos el
campo 98nidadEnE'istencia9 cuando queremos conocer el total de e'istencias que ha
adquirido un cliente4 2/o seria mas lgico tener otro campo que se llame 9unidades
vendidas94
!ueno, una de las reglas principales en el uso de las bases de datos relacionales es,
como vimos en las primeras lecciones, no duplicar /8/3A la informacin , y Access nos
permite usar toda su potencia en nuestro beneficio
%e*moslo mas detalladamente. &a tenemos un campo que contiene las e'istencias de
cada producto
-i lo consultamos directamente obtendremos el total de las e'istencias del producto que
poseemos. ero 2;u) pasa si relacionamos ese campo con los datos de otra tabla4 2or
ejemplo la tabla 3lientes4. 2;u) es lo que obtendramos entonces4
ues obtendramos el total de e'istencias consumidas por ese cliente
-i quisi)ramos ubicar las e'istencias en un horizonte temporal, no necesitaremos crear
otro campo para ello, bastara con relacionar las e'istencias con un campo fecha de la
tabla apropiada
El mismo campo 9e'istencias9 de la tabla producto, puede aportarnos informacin diversa
si la relacionamos con la tabla cliente 69e'istencias vendidas97, o con la tabla proveedor
69e'istencias compradas97, si tuvi)ramos una tabla de inspectores podramos conocer
69e'istencias inspeccionadas97, todo ello habiendo introducido -5+5 8/A %EL los datos
en el campo 9e'istencias9 de la tabla productos
3omo podemos ver, es importante dar nombres descriptivos a cada campo, no solo para
entender f*cilmente el tipo de datos que contiene, si no tambi)n para comprender como
le puede afectar el ser relacionados con otras tablas
ero, A(E/3,M/, Ambos campos son de tablas distintas, y en la seccin superior de la
ventana de dise1o vemos que entre las dos tablas no hay ningn campo comn, no hay
37
ningn vinculo entre las dos tablas.
-i queremos relacionar dos tablas distintas, debemos tener algn tipo de referencia entre
ellos. En este caso no tenemos ninguna, pero podemos tenerla f*cilmente si agregamos
la tabla 9edidos9 a la consulta. Esto podemos hacerlo en cualquier momento
simplemente pulsando el botn derecho del ratn y eligiendo 9<ostrar tabla9
C'lculos sobre los re%istros II!
En la siguiente ventana agregamos, como ya sabemos la tabla 9$edidos9
&a tenemos relacionadas las tablas 9clientes9 y 9Producto9, por medio de la tabla
9Pedidos9.
Ahora terminaremos de rellenar las propiedades de la consulta en la cuadricula,
agregando el campo totales tanto al campo 9.nidadesEnE,istencia9 y
9No"breCliente9, tal como hicimos en el tema anterior
38
ero esta vez, calcularemos la 91u"a9 para 9.nidadEnE,istencia9, y aplicaremos
9#%ru$ar $or9para el campo 9No"breCliente9
El resultado que obtendremos al ejecutar la consulta es el que sigue.
Crear consultas en vista de dise(o con
varias tablas
En este tema aprenderemos a crear consultas con varias tablas, casi todo lo que veremos
en este tema ya lo hemos utilizado a lo largo de este curso para poder llevar a buen
termino los ejemplos, as que es normal que nos resulte todo ello familiar, pero en este
tema vamos verlo todo m*s organizadamente y paso a paso desde el principio.
%amos a partir de un ejemplo: ;ueremos averiguar el cdigo del cliente, sus apellidos, el
cdigo del pedido y la fecha de la venta.
ara ello necesitaremos manejar las tablas cliente y la tabla pedidos.
El primer paso ser* crear la consulta, esta vez lo haremos utilizando el asistente.
ero primero tenemos que entrar en la venta de consultas, lo haremos pinchando en la
opcin 9consultas9 en la lista de objetos, que est* en la ventana de 9Base de datos9
En esta pantalla elegiremos crear la consulta utilizando el asistente, mas adelante la
modificaremos en el caso de que sea necesario, desde la venta de dise1o
En la ventana del asistente, lo primero es elegir la primera tabla desde la que queramos
seleccionar los campos. ?emos dicho que nosotros necesitaramos de la tabla 3lientes,
los campos 9codi%o cliente9 y 9#$ellidos clientes9
39
El pr'imo paso, sin salirnos de esta ventana, es cambiar de tabla, ahora necesitamos los
campos de la tabla pedidos. ara ello solo tenemos que desplegar la persiana de datos
de la ventana 9)abla0consultas9 y seleccionar la tabla 9Pedidos9
8na vez seleccionada la tabla pedido, solo tenemos que a1adir los campos 9Codi%o
$edido9 y 9/ec&a venta9 a la lista de campos seleccionados tal como lo hicimos con los
campos de la tabla 9Clientes9
40
Ahora si podemos pulsar 91i%uiente9, y pasar por fin a la siguiente ventana. En esta
ventana, que ya conocemos elegiremos detalle, pues queremos ver todos los campos y
no un mero resumen.
Antes de ejecutar la consulta, vamos a ver como ha quedado desde la vista de dise1o.
En esta venta vemos los campos que ser*n mostrados, los distinguimos porque est*n
marcados en la casilla 92ostrar9, en la seccin superior de la ventana, podemos ver las
tablas utilizadas, as como la relacin que hay entre ellas.
ulsando en el botn ejecutar, que ya conocemos, obtenemos esta tabla como resultado
41
<estionar co"binaciones de tablas!
Access considera que dos tablas est*n 9Co"binadas9 por una campo determinado
cuando hay una relacin entre dos tablas. Es f*cil reconocerlo con un simple vistazo, dos
tablas est*n combinadas cuando est*n unidas por una lnea
3uando se ejecuta una consulta de dos tablas combinadas, solo se muestran los
registros que tengan iguales los campos por los que se realiza la combinacin.
or ello es importante saber crear y eliminar combinaciones en las consultas
-i las tablas seleccionadas para una consulta est*n relacionadas entre si, aparecen
combinadas autom*ticamente. Aunque si no est*n relacionadas tambi)n podemos
combinarla de la misma forma que conocemos: Arrastrando uno de los campos hasta el
otro en el *rea de datos.
Aqu hemos combinado las dos tablas a trav)s del campo 9No"breProducto9 con
9#$ellidoCliente9, esto podra ser de utilidad en el caso de que queramos ofrecerle al
cliente una gama de productos con su Apellido, por ejemplo.
-u funcionamiento, a partir de ahora, es e'actamente igual que si fuera una relacin entre
tablas. 3on una salvedad, esta combinacin solo es funcional en la consulta en la que ha
sido definida. /inguna otra consulta se vera afectada por esta combinacin.
ara eliminar la combinacin, solo hay que posicionar el ratn sobre la lnea que une las
dos tablas y pulsar el botn derecho del ratn. & en la ventana de dialogo que surge
pulsar la opcin eliminar
/o olvides que si aparte de la combinacin hay una relacin entre las tablas, la relacin
persiste aunque eliminemos la combinacin.
odemos agregar tablas a la consulta para establecer nuevas combinacin f*cilmente,
42
con solo pulsar el botn derecho del ratn y seleccionar la opcin 92ostrar tabla9
&a solamente tendremos que agregar la tabla o tablas que deseemos.
Eliminar una tabla que ya no utilicemos en una consulta es aun m*s sencillo,
simplemente tenemos que pulsar el botn derecho del ratn sobre ella y seleccionar la
opcin 9Auitar tabla9.
Crear una consulta a $artir de otra !
Este es un tema cortito que trata sobre una sofisticacin bastante curiosa que nos permite
desarrollar Access.
?asta ahora hemos utilizado tablas para crear las consultas, o como mucho datos de
campos calculados.
ero Access nos permite utilizar otras consultas como base para nuestras consultas
+a razn de esto es fundamentalmente ahorrar trabajo a la hora de crear consultas. or
ejemplo, si ya tenemos creada una consulta sobre las ventas a un cliente, podemos
aprovecharla para calcular el montante total de nuestro balance con )l, y evitarnos as
a1adir varios campos y aplicar mas o menos criterios para obtener de nuevo los datos
que ya poseemos en otra tabla.
-implemente tendremos que pulsar en la pesta1a consulta de la venta 92ostrar tabla9,
43
en la ventana de vista de dise1o cuando creemos la consulta
odemos crear consultas solo de consultas o tambi)n podemos cruzar datos de
consultas con otros provenientes de tablas
/o hay que olvidar que si utilizamos datos provenientes de consultas, no utilizaremos los
datos originales, sino nicamente los datos que cumplan las condiciones e'presadas en
la consulta que estamos utilizando. -i olvidamos esto podemos llevarnos desagradables
sorpresas con las salidas que nos proporcione Access
Las consultas de accin!
?asta ahora hemos estado utilizando las consultas de seleccin, estas se han
caracterizado porque se e'traa de una base de dato una informacin mediante un
proceso de seleccin, a la vez que se desde1a la parte de la base de datos que no
cumple los requisitos de nuestra seleccin.
ero hay otro tipo de consultas, llamadas consulta de accin, estas se caracterizan por
que pueden afectar al contenido de los datos reales de una tabla, pueden crear nuevas
tablas, a1adir o borrar registros, o actualizar tablas.
Este tipo de consultas son muy delicadas, pues si nos equivocamos o no hemos pensado
bien como conseguir lo que pretendamos podremos haber modificado
irre"ediable"ente la base de datos ori%inalB sin $osibilidad de des&acer la accin.
%amos a crear paso a paso una consulta para crear tablas.
3rearemos una consulta para que presente los datos con los que deseemos crear la
nueva tabla
44
Ejecutaremos la instruccin 9Consulta de creacin de tabla 9
(eclearemos el nombre de la nueva tabla en el cuadro de te'to y pulsaremos 9#ce$tar9
?asta que no pulsemos el botn ejecutar no se iniciara el proceso para crear la nueva
tabla.
En cuanto pulsemos Access nos mostrara una ventana para confirmar nuestra decisin
& aqu esta la 9)ablaCreada9 en la ventana de tablas de la 9base de datos9
45
Al comienzo del tema dijimos que las consultas de accin no solo creaban tablas, sino
que tambi)n podan crear registros, borrarlos o actualizar tablas.
El funcionamiento de todos estos procesos son id)nticos a lo ya e'plicado, el
procedimiento difiere nicamente en el momento de crear la accin. En el men
desplegable podemos ver las distintas opciones que hay disponibles
/osotros pulsamos la opcin 9Consulta de creacin de tabla9 para crear una tabla
nueva, si hubi)ramos querido actualizar la tabla, deberamos haber pulsado la opcin
siguiente.
ara crear registros solo debemos pulsar 9Consulta de datos ane,ados9, y para
borrarlos 9Consulta de eli"inacin.9
Los /iltros!
+os filtros, como indica su nombre, sirven para filtrar los datos de los formularios de forma
que muestre los registros de la tabla o consulta que cumpla las condiciones establecidas
en el.
-e accede a los filtros pulsando situando el ratn sobre la tabla y pulsando el botn
derecho
46
+os filtros tienen otra funcin que no tiene tanto que ver con su nombre como la anterior.
+os filtros tambi)n pueden utilizarse para ordenar los registros de una tabla.
El botn para ordenar ascendentemente, o descendentemente, se aplica al campo en que
est) el cursor activo, y ordena todos los registros de la tabla segn este criterio.
En cambio el botn 9/iltro $or seleccin9, tras haber colocado el cursor en el campo que
queramos utilizar como base para filtrar la tabla. or ejemplo si filtramos por 92icrosoft9
47
-olo se mostraran los registros cuyo campo 9E"$resa9 contenga la palabra <icrosoft.
El botn 9/iltro $or seleccin9 funciona igual solamente que no necesitamos teclear
nada, basta con situar el cursor sobre el valor por el que queremos filtrar la base de
datos.
5tras opciones son 9/iltro e,clu7endo la seleccin9, por ejemplo en nuestro caso
mostraran todos los registros menos los de <icrosoft.
& por ultimo, pero no menos importante, 9Auitar filtro u orden9. Es posible que en algn
momento necesitemos tener otra vez visible todos los registros de la tabla, -implemente
acudiremos a esta opcin para ello
ara acabar con los filtros$ veremos los 9filtros de for"ularios9. En la ventana de
presentacin del formulario, pulsaremos en el botn 9filtro $or for"ularios9.
Aparecer* la ventana de presentacin, pero vaca
Ahora pincharemos en el campo que queramos usar para definir el filtro, a la derecha del
campo aparece una flecha.
48
-i pulsamos en ella, se despliega una cortinilla con todos los datos posibles para ese
campo, que hay en la tabla.
odremos (eclear en los campos las e'presiones que queramos usar para filtrar los
datos. & por ultimo aplicaremos el filtro
#sistentes $ara infor"es
no auto"'ticos I!
ara acabar con el curso vamos a aprender a usar los asistentes para informes no
autom*ticos.
ara ello vamos a crear paso a paso un informe sobre los productos.
rimero pulsaremos el botn de informe de la ventana de base de datos.
"espu)s pulsaremos en la opcin crear un informe utilizando el asistente.
Aparecer* el asistente gen)rico que ya conocemos, seleccionaremos los campos que
49
necesitemos para nuestro informe, tal como ya sabemos.
8na vez que pulsemos 91i%uiente9, aparece un nuevo cuadro de dialogo, nos preguntara
por el nivel de agrupamiento que deseamos.
/osotros lo agruparemos por el /ombre de roducto. odemos crear varios niveles de
agrupamiento de forma anidada.
50

Das könnte Ihnen auch gefallen