Академический Документы
Профессиональный Документы
Культура Документы
El Rinconcito Informtico
http://www.elrinconcito.com
Access 2007
Bases de datos
Cuando se dispone de una cantidad de informacin importante susceptible de distribuir
en formas de tablas, es cuando echamos mano de las bases de datos. El trmino es
utilizado incorrectamente en muchas ocasiones, por ejemplo, en la utilizacin de Excel
hay muchos autores que la mencionan cuando no es real por mucho que tenga
caractersticas que son parecidas. Pero el diseo del software de utilizacin es muy
diferente dado que no estn preparadas para realizar las mismas cosas, un libro de hojas
de clculo no tiene ni la capacidad ni la maniobrabilidad de una B.D. real.
Normalmente se suelen diferenciar en cuanto a su comportamiento y potencia en las
denominadas de "escritorio", como bien se podra incluir el caso de Access, y las
puramente relacionales, como seran los grandes gestores de datos. En este caso
concreto hay muchos aspectos comunes pero tambin los hay diferentes. La capacidad
de Access es limitada, segn sus creadores, Microsoft, puede llegar entre la totalidad de
sus tablas que conforman un nico fichero, hasta un giga. En el caso de las grandes no
hay lmites claros. Adems es bastante comn, si no en todos los casos, que en las de
escritorio o llammoslas personales, estn unidas a una interface que facilita su
utilizacin sin conocer en absoluto lenguajes de consultas, aunque lo permitan, de hecho
la que vamos a tratar incorpora su propio software de programacin, el VBA (Visual
Basic para Aplicaciones) que maneja el estndar de interrogacin a B.D. que todas
utilizan con una mayor o menor complejidad, que es el SQL (Structured Query
Language).
En cualquier caso no vamos a referirnos a stos, sino al interface de utilizacin que
acompaa a la base de datos y que no requiere ninguna nocin de programacin, como
s ocurrira en los otros casos e inevitablemente en B.D. de mayor importancia. Y al
decir esto no pretendo indicar que sean mejores o peores, sino que cada una tiene su
cometido y segn ello, sus limitaciones. Hay temas estndares de las grandes bases que
no estn en Access porque carecera de sentido probablemente.
La generacin en cualquiera requiere un muy estudiado diseo de lo que se va a
introducir y de lo que se pretende obtener para poder realizar la primera operacin, que
sera la generacin de las tablas que la componen.
Pensemos, por ejemplo, en una empresa que vende productos por Internet. Las ventas
entraran en una base preparada para ese medio, la Red, y se volcaran en otra de mayor
envergadura, donde posiblemente tendramos una tabla de productos, otra de precios, de
facturacin, stock, clientes, proveedores, etc., tantas como se precisen para que la
informacin sea estructurada y fcilmente manejable, siguiendo siempre el principio de
no redundancia de datos o en otras palabras, la informacin que contiene una no debe de
estar en cualquiera de las otras.
Son caractersticas a tener en cuenta sea cual sea la B.D. Y Access es apropiada para
empresas que no requieren de grandes volmenes ni de tcnicas de desarrollo
avanzadas.
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Clientes. Podramos decir que seran nuestras bases y hay que disearlas con la idea de
lo que vamos a necesitar para realizar una ordenacin coherente, aunque sea posible
modificar a posteriori. Para ello podemos generar un cdigo secuencial de productos e
incluir en la misma tabla el proveedor, que ser as mismo un campo clave de la que
hemos creado, pero nos es perfectamente til la utilizacin del CIF del mismo, debido a
que no puede repetirse y es cmodo de utilizar. Cuando el stock mnimo nos indique
que debemos de efectuar comprar, tendremos ambos cdigos y con ellos los datos
asociados, muy simple.
La parte esencial de nuestro negocio, que es la venta, conformar la tabla de pedidos y
se formar a travs de dos claves, la del producto y la del cliente. Con ello tendremos
todos los datos de la venta, tanto por parte de la mercanca como del comprador.
Suficiente para realizar cualquier albarn. Si unimos los campos por colores como en la
figura, la idea sera algo de este tipo.
Con ello podemos entender la base de lo que significan las relaciones y los ndices que
entran en juego. Por supuesto todo sera ms amplio, pero valga como ejemplo.
El caso de la tabla de proveedores con la de stock o almacn se definira como una
relacin de uno a uno. Entendiendo que slo compramos el producto en concreto a un
proveedor determinado y no a ms de uno, existe una relacin directa entre lo que existe
en el almacn y quien nos lo suministra. No es el caso ms usual, tendramos que
convenir para ello un proveedor nico y no tendra por qu ser as. Pero hay ocasiones
en que efectivamente no hay ms remedio.
Los normal es lo que ocurre, por ejemplo, con la tabla de productos que puede formar
parte el mismo artculo de una cantidad indeterminada de pedidos, por lo que se
establecera una relacin de uno a varios.
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Nombre
Apellidos
Direccin
Telfono
Correo electrnico
Fecha nacimiento
Profesores.
Nombre
Apellidos
Direccin
Telfono
Correo electrnico
Especialidad
Coste por hora
Cursos.
Curso
Fecha inicio
Fecha finalizacin
Nm. de horas
Precio
Podemos considerarlo como vlido tras estudiar las necesidades. Por lo tanto es hora de
sentarnos delante de la pantalla.
4
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Tiene elementos comunes con otras herramientas de Office y muchos que no lo son. En
principio lo que nos interesa es generar una base de datos y la opcin ya la tenemos en
el centro de la pantalla, no nos hace falta, aunque se podra perfectamente, acudir al
botn de Office.
Una vez que hemos pulsado Base de
Datos en blanco en la parte inferior
derecha de la pantalla se nos pedir un
nombre y una ubicacin, sta a travs del
icono de carpeta situado en la derecha.
Como se puede apreciar en la figura, he
incluido una denominacin Curso y
quiero guardarla en la ruta especificada.
Por lo tanto pulso en el botn de Crear, y
aparece una nueva pantalla.
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
creada, por lo que nos pide un nombre. ste lgicamente ser Alumnos, que es el
primero que nos interesa. Tras ello se nos muestra la vista en Modo Diseo. Es la que
se puede ver.
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
As que la forma ms simple es realizar ste cometido desde la pestaa de la tabla con el
botn secundario, lo que nos abre el men que se ve en la imagen y del que aceptaremos
la opcin Guardar, nos preguntar el
nombre que utilizamos y en este caso es
Profesores.
En la zona izquierda nos aparecern ahora
dos tablas, si es que la opcin del
desplegable que hay un poco ms arriba
est en seleccin de Todas las tablas, y
por lo tanto sern la de Alumnos y la de
Profesores. Si queremos abrir cualquiera de ellas, con realizar un doble clic en esa
ubicacin es suficiente.
Lo haremos con la de Profesores que acabamos de
guardar para configurar los campos.
En la pestaa de Inicio el primer icono es Ver y en su
parte inferior hay un desplegable. Nos interesa utilizar la
Vista Diseo pues es desde ste modo en el que
podemos trabajar sobre los campos.
Nos aparece la pantalla que ya utilizamos en el diseo
de la tabla Alumnos. Vamos a dejar el campo ndice tal
y como est, veremos ms tarde qu hacer con ellos.
Pero lo aprovechar para explicar los posibles tipos de
campos, que slo lo vimos de manera muy somera.
Como se sabe basta pulsar la flecha de desplegable para
acceder a los existentes. Seran los que aparecen en la
imagen.
Tipos de campos.
Iremos por orden.
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
ms amplia.
o
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Si/No. Es el tpico campo lgico verdadero o falso, que en sta base de datos
lo denominan de esta forma, pues slo puede tomar los dos valores.
Puesto que ya conocemos cmo manejar los campos, vamos a disear el tipo correcto en
la tabla de profesores, la cual en este momento estar con la totalidad de los suyos como
Texto salvo el que genera, Id, como ndice que ser auto incremental o auto numrico.
Como hemos dicho, ste no lo vamos a modificar por ahora.
El resto es muy simple, los cinco primeros tan slo hay que modificar su longitud para
no correr el peligro de que los datos no se corten por lo escaso y que no sobre
12
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
demasiado por el exceso de ocupacin en disco. Y el ltimo ser de tipo Fecha en modo
de fecha corta.
Se puede indicar con un Si aquellos que consideremos de introduccin necesaria, es
decir, modificando la opcin Requerido.
Sabemos crear tablas, por lo que no menciono la tercera que falta y que denominaremos
como Cursos. Tendr la estructura que ya mencionamos con anterioridad pero para
evitar errores el primer campo, donde especifica Curso pondremos Nombre-Curso. ste
ser de formato Texto con 60 caracteres mximos, y especificaremos un Si en la opcin
Requerido.
Ambas fechas sern de formato corto, y al igual que todos los campos restantes no
obligaremos a la introduccin, habida cuenta de que se puede tener prevista la
realizacin de un curso pero no tener contemplados los detalles.
El campo Num-horas ser lgicamente Numrico y de tipo Entero. Y el campo Precio
ser de tipo Moneda con formato Euro y 2 decimales.
En tablas con tan escasa cantidad de campos es fcil acordarse en qu consiste cada uno,
y ms si se utilizan nombres adecuados, pero hay muchos casos en los que no es as, y
resulta muy aconsejable utilizar la columna Descripcin que se encuentra a la derecha y
como tercera columna, la de mayor extensin, en la vista de Diseo.
Hemos efectuado algunas operaciones con las Propiedades de los campos como pueden
ser Tamao de campo, decimales o si es requerido, es decir, obligatoria la introduccin
de datos en el mismo, pero podemos ver otras propiedades interesantes, aunque cambian
teniendo en cuenta el tipo de campo del que se trate. Con carcter general se podan
considerar varias. Veamos algunas, pero cabe mencionar que cuando existe la opcin de
su uso normalmente se refleja a la derecha con un botn pequeo que contiene tres
puntos suspensivos [], ser la indicacin de que existe una ayuda con opciones a
utilizar, aunque puede tambin tratarse de un desplegable, lo que normalmente se
visualiza con el smbolo de la flecha que hemos visto infinidad de veces. Bien, pues
como se ha dicho, veamos algunas.
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
como de las que son pocas, las constantes y los operadores, pero las opciones de
concatenacin, de que cumpla o no un requisito, de que tenga un valor
determinado o mayor, menor, y un largo etctera. Es la imagen que se puede
observar.
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
tabla de Cursos.
En la imagen se aprecia el
Selector de Fechas activo en los
campos que le corresponde.
Bien, la academia tiene las
mismas ganas de trabajar este
ao como el que redacta estas
pginas de inventarse ejemplos,
as que slo programa tres,
aunque como se puede ver por el
valor del ndice se estn
desarrollando cuatro ms, no nos
interesan. Los datos que han
introducido son los de la figura.
15
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Una vez que han realizado lo anterior les interesa contratar profesores nuevos y en ello
estn. Por lo que activan la tabla de profesores y se ubican en Vista de Diseo. El
campo Especialidad va a ser definido como Asistente para bsquedas, como se aprecia
en la figura.
Al ejecutar esta opcin se abre la ventana del Asistente cuyos pasos iremos siguiendo.
En principio es la que se aprecia.
Lo ms usual es que el origen de la bsqueda o datos sea otra tabla, aunque puede haber
excepciones. En nuestro caso lo que precisamos es que la Especialidad sea la que
aparece en la tabla Cursos, como hemos dicho, por lo tanto seleccionamos sta opcin.
Nos aparece una nueva ventana, en la que no mencionamos las Consultas porque no se
ha visto su realizacin, pero s la tabla. Nos muestra las existentes en la base de datos,
por supuesto la que debemos elegir es la segunda, Cursos.
16
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Una vez que pulsamos Siguiente, se abre una nueva ventana en la que se aprecian los
campos de la tabla seleccionada. Los que figuran en la parte izquierda son todos ellos, y
los que deben incluirse en la tabla de Profesores que es la que estamos tratando, son los
que han de aparecer en la parte derecha. En este caso resulta un tanto absurda la opcin
de seleccionar todos los campos, pero se puede dar en otros casos. La doble flecha o
ngulo que separa las dos cuadrculas implica lo dicho, la seleccin de todos ellos,
mientras que la primera y simple, traslada como seleccionados aquellos que nos
interesan. Aceptaremos el que aparece marcado que es Nombre-Curso. Tras hacerlo
desaparecer de los campos disponibles para pasar a la zona derecha.
17
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Tras continuar nos pide que seleccionemos la anchura del campo a visualizar. Para ello
nos muestra los contenidos que tenemos, pues es de suponer que elegiremos el ms
largo, aunque no hay motivo en principio. En ste caso lo hemos realizado as, y para
ello basta posicionarse en el ttulo del campo y cuando el cursor se convierta en una
cruz en su vertical derecha, lo desplazamos.
No tenemos ningn inters en el campo clave, pues no lo estamos utilizando, por lo que
seguimos el consejo que aparece por defecto y no lo visualizaremos.
18
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Por ltimo, nos permite poner una etiqueta a la columna. Hemos denominado a los
campos con una definicin clara, por lo que aceptamos el valor que nos indica y que es
el nombre del mismo. Tampoco es el caso en que nos interese que pueda tomar varios
valores, suponemos un profesor relacionado con un curso, nada ms. As pues
finalizamos con la siguiente pantalla.
Curiosamente el campo que antes era de texto ahora es numrico. Eso no quiere
indicar que va a guardar nmero en el sentido de lo que nosotros vamos a visualizar,
veremos texto pero su contenido es una relacin e intervienen los ndices, ahora la
19
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
vemos. Primero debemos salvar lo realizado guardando la tabla con las modificaciones
efectuadas.
En ste paso es normal que nos sarga el letrero indicando que podemos perder datos por
modificacin en el tamao. Ocurre al detectar potenciales registros grabados, que son
inexistentes y no debiera de salir, pero como el ndice se incrementa en cada prueba que
se realiza, considera lo contrario.
Vamos entonces a introducir el primer dato en la tabla de Profesores. Hacen pocos
cursos pero se puede apreciar que buscan los mejores profesionales como se ve en la
figura, pero aparte de esto, al llegar al campo en el que hemos realizado la bsqueda,
nos aparecer la flecha indicadora de un desplegable, que contiene los valores que se
encuentren en ese momento en la tabla y el campo elegido como enlace.
Qu es lo que hemos
hecho? Pues simplemente
crear una relacin entre dos
tablas. Es el ms simple
posiblemente pero vlida,
por ello podemos ver que se
ha creado una nueva
pestaa que se llama as,
Relaciones.
Y
como
podemos
apreciar
si
pulsamos en ella, ha
relacionado el campo clave
de la tabla Cursos con el
campo Especialidad de la tabla Profesores. Ella sabe manejarlo, no necesitamos ms
trmites. Es lo que se aprecia en la
imagen.
Si tuvisemos que modificar alguno de
los campos que se encuentran sujetos a
la relacin, primero tendramos que
romper sta. Sera muy simple, tan slo
pulsar en la lnea donde se dibuja la
unin entre ellos y seleccionarlo en el
men contextual que se puede ver en la figura.
Vamos a ver qu ocurre si en lugar de utilizar una tabla se toman los valores
introducidos por el teclado. Es una opcin ms puntual que el caso anterior, porque si
son valores constantes, como puede ocurrir con las mencionadas provincias, resulta ms
lgico tener una tabla creada para cuando se necesiten.
20
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Por inventar un ejemplo supongamos que, por el motivo que sea, interesa que aparezcan
las posibles Comunidades Autnomas en la tabla de alumnos, tal vez porque se realicen
cursos por correo y haya competencias que estn transferidas o lo que sea, pero se
precisa. Slo para ste ejemplo aadir un nuevo campo en la tabla Alumnos que sea
CCAA y dado que es algo muy puntual introduciremos a mano las Comunidades para
que no haya que teclearlas en cada alumno. En cualquier caso el proceso sera igual que
el anterior con las bsquedas a travs de tabla, pero en este caso seleccionaremos
Escribir los valores que desee.
A continuacin aparecer la pantalla en la que se pueden introducir los valores. Es
posible utilizar ms de una columna pero no parece que tenga mucho sentido, por lo que
continuaremos con una sola. Sera lo que se aprecia.
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
ms inservible, permite duplicados, lo que sera correcto, pero tambin permite campos
en blanco, algo extrao para un ndice, con carcter general.
Como es lgico, si utilizamos un campo de tipo Memo, por poner un ejemplo, no
podemos esperar un ndice de l cmo se indexa un texto completo? No es posible, por
lo que ese tipo como los OLE no pueden serlo.
Con ste ejemplo hemos podido apreciar que una tabla puede tener ms de un ndice,
pero no ms de uno que sea primario. S pueden existir secundarios y es ms, dentro de
un solo ndice se pueden asignar varios campos.
Bien. Lo que resulta muy claro es que un primario ni puede estar vacio ni permitir
repeticin, por ello se utiliza por defecto un auto incremental, algo que podemos
cambiar y sera un cambio lgico. Lo ms usual es que si se trata de personas fsicas o
jurdicas se utilice el nmero de identificacin, cuando son productos la codificacin
inequvoca es necesaria, etc. Esos deberan de ser nuestros campos primarios y eso es lo
que haremos con las dos tablas en las que intervienen personas. Cambiaremos los Id por
los DNI.
Resulta de utilidad siempre que se trate de ndices (y con carcter general
tambin) utilizar la Vista de Diseo. Y estando activa la paleta de diseo.
En la zona
superior
derecha
vemos
el
icono
de
ndices.
Al
pulsarlo
aparece una
pantalla con
los
que
tenemos
activos,
en
este caso sera
de
la
siguiente forma.
Vamos pues a modificar, y sustituiremos el primario Id por el DNI de los profesores.
Hay quienes tienen la costumbre de denominar siempre con un prefijo de los
mencionados y no est mal, pues se ve con rapidez de qu se trata. Otros damos por
supuesto que si aparece un DNI es la clave principal y por lo tanto no hacemos eso.
Seguir mis costumbres. Lo primero es eliminar los que se ven en la figura, algo que
podemos realizar desde esa pantalla con el botn secundario, como se puede ver en la
imagen.
23
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
24
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
a
continuacin
eliminar
el
diseo.
Si se pulsa en
Mostrar todas
las relaciones
no deben de aparecer o el campo/s seguir existiendo.
Modificaciones y reestructuracin.
Seguro que a esta academia de informtica le ha asesorado uno de sus muy eficientes
profesores pues indican que la estructura es incorrecta. Y debemos darles la razn
porque hay un fleco suelto. Se trata de lo que en la tabla Profesores hemos denominado
Especialidad y en la de Cursos Nombre-Curso. Si recordamos, la filosofa es que
los dos campos sean iguales, de tal forma que se relacionan entre ellos.
Si recordamos el principio de no redundancia vemos que se incumple. Es perfectamente
vlido que dos tablas tengan el mismo contenido en cuanto a cdigos, o campos claves,
puesto que en otro caso las relaciones seran imposibles, pero se escapa de la buena
lgica el hecho de incluir sin ms dos textos iguales. Por lo tanto corresponde crear una
tabla que denominaremos Materias, que estar codificada y ser la que una ambos
campos. Por lo tanto es lo que debemos de hacer. Hay tres registros en Cursos, esos
formarn parte de la nueva tabla que podr contener ms registros aunque en ese
momento no se utilicen.
25
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Slo parecen precisos dos campos. El Cdigo que ser un entero sin decimales, y la
Materia que ser un campo de
texto con 100 dgitos mximos. El
primero lo definiremos como
ndice principal y nico. Es lo que
aparece en la figura.
Codificaremos las Materias con cuatro dgitos empezando por el 1001, puesto que si
maana nos encargamos tambin de cursos de electrnica en lugar de informtica, por
poner un ejemplo, puedan empezar con otro distinto, como los 2000 y seran fcilmente
distinguibles.
Por lo tanto en la tabla de Cursos debemos de introducir los cdigos, eliminar el ndice
primario existente y sustituirle por Nombre-Curso, que ser quien contenga el cdigo.
Hay que hacer lo mismo en la tabla de
Profesores, pero con un ndice secundario, y
convertir Especialidad en el mismo tipo de
campo que hemos puesto en la tabla Materias y
crear en l un ndice. La empresa nos indica que
slo habr un profesor por cada una, por lo que
no cabran repeticiones, pero no es llevar la
contraria si suponemos que alguien enferma y
temporalmente debe de ocupar su puesto otro, lo
creamos como obligatorio y con repeticiones por
si acaso.
Estn ya contentos? No? Ya, los alumnos, no
sabemos qu curso realiza cada uno. Pero eso nos supone un problema porque cada uno
puede estar apuntado exclusivamente a un curso o a varios. No parece en absoluto
sensato e ira contra la filosofa relacional el que incluyamos en cada ficha de alumno n
campos de cursos, podra resultar que slo utilizsemos uno de ellos o que nos
quedsemos cortos. Por lo tanto lo ms sensato parece establecer una relacin entre los
alumnos y los cursos y eso lo vamos a conseguir con una nueva tabla denominada
Alumno-Curso.
Ya sabemos hacerlo, vamos a Crear Tabla con
el nombre indicado. Slo dos campos, la clave
primaria sera Curso porque no se dar
repeticin, no parece factible que un alumno
haga el mismo curso dos veces de forma
simultnea, y la segunda o secundaria el DNI
del alumno con lo que ya estara prevista la
relacin con la primaria de cada uno. Con ello
tendremos tantos registros de cada alumno
como cursos realiza. Ambos campos tendrn
que tener el mismo formato que los de las tablas
correspondientes. Y el ndice secundario
admitir repeticin, pues es de lo que se trata,
26
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
que un alumno pueda realizar ms de uno, y por lo tanto el DNI se repetir en ese caso.
Es lo que aparece en la figura de la izquierda.
Mscaras de entrada
Lo primero a indicar es que un valor numrico lo es en tanto el campo est diseado de
ese tipo, no en caso contrario.
Las mscaras se utilizan tan slo en los campos de tipo fecha o texto. Por lo que si
tenemos una clave como ndice, que hemos indicado un valor numrico, no podramos
generar una mscara aunque slo permita utilizar nmeros, el resultado sera de tipo
texto y por lo tanto estaramos en un proceso sin salida. Lamentablemente Access no
permite utilizar el Asistente de mscaras, pero s la escritura de cualquiera de ellas y
responde a los valores introducidos aunque sea incorrecto.
El Asistente que ahora veremos nos facilita el trabajo, pero realmente se puede generar
lo que se quiera si se utilizan las claves adecuadas. Seran las siguientes.
Carcter
Descripcin
Un dgito de 0 a 9, obligatorio.
?oA
&
. (Punto)
Marcador decimal.
, (Coma)
Separador de millar.
: (Dos puntos)
Separador en horas.
;-/
Separadores en fechas.
<
>
Contrasea
27
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Con distintas opciones para las entradas ms comunes susceptibles de llevar mscara,
pero por supuesto son posibles muchas ms que podemos confeccionar sin ella.
Si utilizamos, por ejemplo, la tabla Profesores, con un campo clave de texto y que debe
llevar el formato DNI elegiramos la mscara correspondiente. Si previamente queremos
ver cmo funciona, donde aparece la posibilidad de Probar en la figura superior,
pinchamos con el cursor primario y podemos ver lo que sera el formato de entrada. En
el caso indicado sera este: 90000000>L
Veamos lo que ha generado. Una mscara con ocho nmeros y una letra final. El primer
nmero puede dejarse en blanco y la letra sera convertida a maysculas. Pero queremos
el formato estndar de DNI, por lo que el 9 lo sustituimos por un 0 para obligar a la
entrada de un nmero.
El ltimo dgito de la mscara ser el que se visualice en el campo de entrada, y puede
ser cualquiera, no tiene por qu atenerse a los que aparecen en la ventana de Mscara de
Entrada, aunque los usuales sean el espacio ( ) o el guin bajo(_).
Relaciones
Hemos estado viendo la necesidad de tablas y de ndices. Vamos a seguir con stos
ltimos como paso previo a la inclusin de relaciones.
Hay que basarse siempre en la no redundancia de informacin y en que las tablas de una
misma base de datos deben de tener una relacin de al menos 1 a 1.
Veamos qu quiere decir una relacin 1 a 1. Si se diese el caso inequvoco de que a la
tabla de Profesores le corresponde un solo registro en la tabla Cursos y viceversa
estaramos en ese tipo. Entre ambas slo un registro de cada una est relacionado.
28
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Pensemos ahora en una relacin Uno a Varios. De hecho hemos quedado que por
cada Curso pueden existir varios en la tabla de Profesores, por mil causas. As se
establece una relacin en la que un registro se refiere a varios, pero esos varios slo a
uno.
Y por ltimo la de Varios a Varios. Podemos utilizarlo as considerando que un curso se
puede impartir a varios alumnos y que varios alumnos pueden intervenir en distintos
cursos.
No obstante la naturaleza de la relacin depender de cmo la estructuremos.
Cerremos el captulo ndices considerando las relaciones futuras e identificando
claramente estos campos para que no exista confusin posteriormente. Lo efectuaremos
haciendo un repaso de las tablas y todos los campos clave vamos a identificarlos con un
prefijo Id, no por comodidad sino para que posteriormente no queden dudas y se vean
las relaciones a la perfeccin.
Alumnos. Donde el campo clave es el DNI, que denominaremos IdDNI. Es un ndice
principal y por lo tanto Requerido y sin duplicados.
Profesores. Con el mismo nombre de campo clave y las mismas propiedades del campo.
Pero tenemos un campo Especialidad, que hemos dicho con anterioridad que sera la
unin con el de Cursos, por lo menos, as que generaremos en l un ndice secundario,
cambiando el nombre del campo por IdEspecialidad, requerido y Con duplicados, pues
hemos acordado que varios profesores pueden dedicarse a los mismos cursos.
Cursos. Tiene un ndice nico, que se llama Nombre-Curso. No nos es de utilidad
existiendo una tabla de Materias a la que se relaciona, por lo que crearemos un IdCurso,
sustituyendo al anterior con las caractersticas tpicas de la clave principal, requerido y
sin duplicados. En ste caso tambin ser un Nmero Entero sin decimales, al igual que
en la Tabla profesores con el IdEspecialidad.
Materias. En realidad es la descripcin de cada curso para evitar redundancias, as pues
llevar una clave nica con esas caractersticas, y que puede estar relacionado con varias
tablas y deber ser del mismo tipo, Nmero Entero sin decimales. Le denominaremos
IdCodigo.
Alumno-Curso. Lgicamente sirve de unin entre los dos campos que conforman el
nombre. Por lo que ambos estarn indexados de la misma manera que las tablas a las
que hace alusin, un ndice primario IdCurso, que deber ser como siempre, Numero
Entero sin decimales pero cuidado! Es una tabla Varios a Varios, como consideramos
en la explicacin de este tipo de relaciones, por lo que los dos campos sern ndices o
clave y tambin ambos admitirn duplicados. No es una modificacin que se pueda
realizar sin ms, habida cuenta que una clave principal no admite repeticiones, por lo
que tendramos dos claves secundarias sin ndice primario. Y nos quedaran dos campos
clave, IdCurso e IdDNI.
Si accedemos en este momento a Relaciones en la pestaa Herramientas de Base de
Datos y a Mostrar, podemos conseguir algo parecido a lo que aparece en la imagen.
29
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
30
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Veremos posteriormente las opciones de la misma, pero en ste momento nos faltan
conocimientos, slo podemos tener claro que se trata de una Relacin 1 a 1, pues un
curso no puede tener ms de una descripcin tal y como lo hemos planteado (siendo
conscientes de que la realidad sera que hubiese distintos horarios para cada materia, por
lo que sera Una a Varias, pero estamos en un ejemplo), por lo que vamos a postergar un
poco la explicacin de ellas y por
ahora aceptaremos con el botn
Crear, sin ms.
Nuestra pantalla de relaciones se
habr modificado estableciendo a
travs de lneas la que hemos
realizado. Es lo que aparece en la
imagen.
Puesto que hemos decidido el/los
cursos a realizar, cabe pensar
quin los realiza, qu profesor
queremos contratar. Por lo que ponemos en juego la tabla de Profesores, pero aqu
decidimos hace tiempo que una sola materia podra conllevar ms de un profesor, por lo
que nos debe de indicar una relacin de Uno a Varios, veamos si es as. En este caso nos
interesa relacionar el campo IdCodigo con IdEspecialidad. En la ventana
correspondiente nos dice que tenemos razn, el tipo de relacin es el indicado.
Por lo tanto ahora tendremos tres tablas relacionadas por el mismo campo aunque
tengan distintos nombres en cada una. En definitiva es la clave de cada curso.
31
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Ya tenemos preparadas las tablas referentes a los cursos. Por lo que corresponde
adentrarnos en los alumnos. Para ello disponemos de Alumno-Curso que vincula las dos
del mismo nombre, por lo que ser la primera en seleccionar relacionando los campos
IdCodigo con IdCurso. Como existirn tantos registros en esta tabla como alumnos
haya, y varios de ellos realizaran un curso o ms de uno, la relacin de la tabla de
Cursos con sta ser de Uno a Varios.
Y lo que nos queda es introducir a los Alumnos, que tendrn una relacin con AlumnoCurso nuevamente de Uno a Varios porque registros de alumnos slo habr uno, con su
nombre y caractersticas, y campo clave IdDNI, pero al poder efectuar varios cursos
ser la tabla que los une la que tenga ms de un registro, si es que ha lugar, pero es
posible. El resultado es el que se puede apreciar.
Es posible, y poco probable, que al realizar Consultas tengamos que crear nuevas
relaciones entre tablas, lo que s quedar pendiente es la relacin con cada consulta que
32
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Aqu habra que hacer una ligera parada. Si se aprecia el grfico de las estructuras se
puede ver que hacemos partir todas las relaciones de dos tablas: Materias y Alumnos.
Las relaciones existentes con ellas, bajo el punto de vista de las restantes, sern de
Varios a Una o de Una a Una, pero no tienen las dos enlaces secundarios o a varios. Se
relacionan con la clave principal y nica, en este caso. Usualmente a este tipo de tablas
se les denomina maestras. Un trmino que me desagrada porque conlleva
connotaciones de estructuras jerrquicas de bases de datos, prcticamente obsoletas, y la
utilizacin en las relacionales no me parece afortunada, pero
sigue utilizndose, es de suponer que por comodidad, por lo que
podramos decir que las dos mencionadas seran las maestras.
Si en la figura de la parte superior pulsamos en Tabla o consulta,
stas dos son las que nos aparecern por defecto. Se puede
apreciar en la figura.
33
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Vemos que en la parte derecha se encuentran activos botones que antes no lo estaban. El
de Crear nueva no tiene mayor secreto porque se trata de lo que su nombre indica,
34
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
generar una nueva relacin. Pero el Tipo de combinacin que ahora se activa, tiene
otras utilidades.
Por defecto est incluida la
primera de las que se pueden
observar, no obstante seran
seleccionables
las
otras
opciones, pero siempre que se
diese el caso de permitir
romper con la estructura lgica
de relaciones, pues las
opciones distintas
a la
inclusin de ms registros con
independencia
de
la
vinculacin entre tablas, es en
definitiva seleccionar la posibilidad de que la relacin no sea vinculante. Algo que se
sale de los lmites de una base de datos relacional.
Lo lgico es activar la opcin, contraria a las 2 y 3 anteriores, de Exigir integridad
referencias.
Integridad referencial.
Esta es una caracterstica de todas las bases de datos relacionales. En Access se puede
optar por ella o no hacerlo, pero este ltimo caso rompe por completo con la forma de
actuar de ste tipo de bases.
De forma muy resumida, se utiliza la integridad para asegurar que todos los registros de
una tabla estn relacionados con los de la tabla que se relaciona.
En el ejemplo utilizado, no puede existir ningn registro en la tabla Cursos que carezca
del mismo dato en la tabla de Materias, lo que algunos denominan registros
hurfanos.
Aparte de las consultas, que no modifican el contenido de la base de datos qu
operaciones son susceptibles de realizarse? Bsicamente tres: altas, modificaciones y
bajas. Aunque se podra pensar que el problema referencial se encontrase al dar de alta
en una tabla algo que no tiene relacin con la tabla maestra, an cuando se trata de un
error que el proceso de integridad deber hacer constar e impedir, el problema real es
cuando se produce una baja o modificacin en la maestra.
Si se elimina, se da de baja, un registro en la tabla Materias qu ocurrir con los
registros de las restantes tablas que estn vinculadas a se que deja de existir? Qu
ocurre si se modifica y pierde la consistencia en los cdigos? Para ello principalmente
estn los procesos de Integridad, y por lo tanto las Relaciones que se han creado deben
de ser modificadas activando la exigencia e incluyendo actualizacin en cascada tanto
en modificaciones como en eliminaciones.
Hay que pensar lo que esto conlleva. Por ejemplo, si se diese de baja un curso en
Materias, repercutira tanto en Cursos como en Profesores. Obviamente si se quiere
35
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
mantener un registro previamente a la anulacin habr que implicar a ste, que sera un
profesor, en una materia distinta existente en la tabla Materias.
En la prctica hay que tener cierto cuidado con Access, en distintos sentidos. Siempre
que se quiera cambiar una relacin las tablas tienen que estar cerradas. Por supuesto los
campos que se relacionan deben de ser exactos en su estructura. Tambin hay que
considerar que el proceso de exigir integridad previo a la introduccin de datos, no es
una regla de obligado cumplimiento pero si por el motivo que sea hay algn dato que no
se atiene a la restriccin, no permite crearla. Dara el error que sigue y que lo he
obtenido simplemente poniendo un dgito de ms en un campo.
Es frecuente que aun cuando se den todas las condiciones exigidas por el administrador
de Access, haya que guardar los datos y cerrar el mismo para volver a abrirlo. El
software no carece de pegas como ocurre con la mayora.
En cualquier caso, una vez solventada cualquier traba que pueda surgir, se puede
apreciar de forma clara en la visualizacin si hay relaciones sujetas a integridad
referencial y qu tipo de relacin mantienen. Es lo que se puede apreciar en la figura.
36
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Ejemplo de estructura.
Explicacin previa del ejemplo.
Lo normal, cuando se compra o vende mercanca, es que se extienda un albarn en el
momento de las entregas y posteriormente se emita las facturas y no que se base en stas
para realizar los movimientos. Por ello y como la idea del ejercicio es un movimiento de
almacn y no contable, en el enunciado indiqu la no utilizacin de precios. Por lo que
cuando denomino documentos de compra o de venta estoy hablando de albaranes.
Fecha : 04-04-2011
Codigo
059872
5600129
00489
952227
952283
Concepto
Ladrillos huecos 1 agujero
Sacos yeso blanco
Escayola
Suelo cermica Mod. Lunares
Rodapi Mod. Lunares
Cantidad
2.000
285
950
520
120
Ud.
Kg.
Ud.
m2
m2
m/l
Bien. Pues tenemos supuestamente un albarn de compra, que podra ser igualmente de
venta si en lugar de encabezarlo con un proveedor fusemos nosotros y el Para fuese
un cliente. Por lo dems nos servira lo mismo.
As queda claro que hay un proveedor, un cliente (nosotros, en este caso), nm. Albarn
(lo que he llamado documento de entrada, la fecha, y cada uno de esos cdigos con
sus conceptos, cantidades y unidades son las que denomino Lneas de Compra (o de
venta, dependiendo del caso)
Perfectamente. Ahora la tentacin al ver ese documento sera una tabla que contemplase
los campos, algo (mal hecho) de esta manera:
IdProveedor (por que suponemos un fichero de proveedores ya con los datos)
Id Nm. Albarn
Id Producto
Fecha
37
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Concepto
Cantidad
Unidad
Ante esa estructura supuestamente lgica, cabe lo siguiente
P. Eso para el primer producto y los siguientes?
R. Se repite tantas veces como productos se compren
Argumento:
En este caso hay 5 lneas, pero tan slo porque soy vago escribiendo, podra haber 100.
Materiales hay muchsimos con enorme cantidad de Modelos.
Supongamos que hay 100 lneas de compra para mejor visualizacin (aunque el
resultado nos da lo mismo, haya 1 o 1.000, porque siempre ser un nmero variable de
ellas)
Y yo indico. Vamos a cambiar la estructura en dos tablas:
Compras:
Id Nm. Albarn
IdProveedor
Fecha
Lneas Compra:
Id Nm. Albarn
IdCodigo Producto
Cantidad
Unidad
Posible argumentacin en contra:
Respuestas:
Adems:
38
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
En la tabla tuya tienes 7 campos. Supongamos una media de 10 lneas por compra,
aunque haya escrito 5 por trabajar menos.
Por lo tanto, segn la estructura que has hecho habra 7 campos x 10 lneas = 70
campos.
En la ma. Compras se graba una sola vez, es decir 3 campos. Y en lneas de compra
habra 4 campos x 10 lneas = 40 campos. Lo que equivale a un total de 43 campos.
Si en un mes se realizan 100 compras, por tu versin tendras en la base de datos 7.000
campos, mientras que yo tendra 4.300.
Es ese todo el problema? En absoluto, si fuese por eso tan solo la argumentacin sera
vlida pero pobre. La escribo exclusivamente para demostrar algo tangible. La realidad
es que cualquier base de datos relacional est preparada para utilizar a muy alta
velocidad los ndices, para los que genera ficheros independientes (aunque no se vean)
que apuntan directamente a los registros.
Pero no est preparada para tablas con muchos datos. Debe de ser un principio que
siempre que sea posible y lgico, una tabla grande debe de ser dividida, me repito, si la
divisin es lgica, no se trata de trocear sin ms. De esa manera la base relacional
funcionar de manera ptima y rpida, mientras que moviendo informacin son stas
ms torpes. Por ello, siempre con coherencia, divisin de tablas, varias y pequeas.
Ejemplo de diseo de base de datos.
Tenemos las siguientes necesidades, nosotros o nuestro cliente. Supondr que es el
cliente porque muchas cosas no se conocen, pero debemos dejar las puertas abiertas
para cualquier tema que surja, y cerrarlas en todo aquello que se d como seguro.
Como en esta prueba intervendran albaranes y facturas, no lo complicaremos y
denominaremos documentos de compra y documento de venta. Sera muy simple
hacerlo real pero no queremos meternos en ms complicaciones de momento.
Lo que conocemos:
1. Compramos a proveedores al por mayor lo que luego vendemos a los
clientes que son empresas de construccin. Precisamos controlar las
compras.
2. Debemos tener un fichero de stock o almacn con cada producto y sus
existencias.
3. Tambin queremos mantener un fichero de clientes.
Adems se nos informa de que cualquier producto puede ser servido por
cualquier proveedor, no hay exclusivas ni nada fijo. E igual que ocurre con las
compras tambin es con las ventas.
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Partimos de estas premisas, cosa distinta es lo que consideremos oportuno siempre que
sea dentro de lo estipulado, es decir, podemos pasarnos por exceso si pensamos que se
pueden precisar ms cosas pero no por defecto.
Se le entrega el trabajo a un informtico que ser yo por defecto. Quieren Access luego
no es complejo. Pero hay que considerar cmo se comienza.
Qu no debo de hacer? Abrir el Access y ponerme a hacer tablas.
Entonces qu hago? Coger lpiz y papel y disear lo que quiero plasmar ms tarde.
Empezar entonces a analizar lo que s y lo que puedo hacer. Primero pensando en las
tablas que van a conformar la base de datos.
Compramos y vendemos materiales de construccin. A m que me han encargado de
ello s de construccin lo tpico, mirar cmo trabajan otros, poco ms, salvo que el ao
pasado me arreglaron la casa y he visto algo del mecanismo (imaginemos que es as,
que por cierto se aproxima mucho a la realidad, pero da igual vender cemento que
caramelos).
Bien, puesto que est aceptado que compramos y vendemos materiales, es decir,
productos, lgicamente tendr que existir una tabla descriptiva de cada uno de ellos.
Ms tarde veremos cmo se estructura, en este momento no nos interesa. As tenemos la
primera
Tabla 1 : Productos
Tabla 2 : Proveedores
Tabla 3 : Clientes
Se nos indica que es necesario controlar las comprar. Pero tambin se nos dice que
podemos adquirir cualquier cosa a cualquier proveedor, por lo tanto al comprar se nos
extender un documento de compra con tantas lneas como productos hayamos
pedido a cada uno de nuestros proveedores. Pero claro, no sabemos si vamos a adquirir
uno slo o 20, depender de nuestras necesidades, qu campos creamos? Ah! Claro,
podemos crear una tabla maestra con los documentos de compra y otra donde poder
incluir registro a registro cada una de las lneas en una tpica relacin de uno a varios,
un documento de una tabla relacionado con varios de otra, as que tenemos dos nuevas
tablas.
Tabla 4 : Compras
Tabla 5 : Lneas de Compra
No nos han hablado de controlar las ventas, pero s que hay que controlar las
existencias, claramente tenemos que considerar las salidas o ventas. Y nos enfrentamos
con el mismo problema anterior. Pero me quedo pensando por qu no utilizar una tabla
de lneas nica para las dos operaciones?. Lgicamente por su tabla maestra cabra
40
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
saber de lo que se trata, pero qu gano con ello? Una tabla menos, obviamente. Si slo
existiese una habra redundancia de datos? No. Una cosa son las compras y otra las
ventas, el hecho de que estn juntas o divididas no genera redundancia alguna. De
acuerdo, pues aunque se pueda hacer me resulta ms claro el separarlas, as que ya
tengo las dos tablas siguientes.
Tabla 6 : Ventas
Tabla 7 : Lneas de Venta
Pensar antes de seguir por si ocurre que me olvido de algo. Veamos, tenemos unos
productos a comprar y vender, esa tabla est. Por lo tanto tenemos unas compras y con
ello unos proveedores, cuya tabla tambin est. Al comprar tendremos que sentar el
documento de compra con las lneas de cada operacin, sean ladrillos, cemento o
tubos de PVC, lo que sea, as tenemos dos tablas la del documento que he llamado
Compras y la descripcin de cada una que he llamado Lneas de Compra. Al vender
seremos nosotros quienes generemos el documento de venta, y estaremos en la misma
situacin y he decidido utilizar dos tablas auxiliares independientes, luego ambas estn.
Parece obvio que si sabemos los productos, las cantidades entrantes y las salientes, slo
nos queda una tabla, la de stock que denominar Existencias, por castellanizar el
trmino.
Tabla 8 : Existencias.
Precios? // No. Es una tabla maestra y no puede tener un valor oscilante, los precios
dependern de la compra-venta. Por lo tanto los campos esenciales son los tres
mencionados.
Qu significa la Unidad de medida? Lo vemos con un ejemplo. Supongamos que
estamos vendiendo a un cliente yeso blanco, cemento, baldosas, tuberas de PVC, codos
para ellas, etc. Cmo efectuamos la venta? Si no introducimos este campos sera algo
como:
41
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
42
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Nos pueden surgir otras necesidades, por ejemplo dar cabida a N nmeros de telfono,
pero en principio sera un tanto ridculo crear tablas auxiliares a montones por cada
potencial evento de ste tipo. As, dejamos la tabla de Proveedores con los campos
mencionados.
Veamos entonces la de Clientes. En principio parece que debera ser igual a la de
proveedores, pero yo que estoy estudiando la situacin en ste momento me cabe una
duda nunca se realizan descuentos? Me extraara que vendiesen igual a
Construcciones y Contratas que a Edificaciones Juanillo. Pero para eso tendra que
saber si se realiza un descuento a determinados clientes igual en cualquier producto o
vara segn lo que se compre, porque es de suponer que afectar el margen de beneficio.
Bueno, nos indican que no considere precios, luego no puedo preguntar, que quede en el
tintero pues lo ms que puede ocurrir es la creacin de una tabla nueva con idCliente,
IdProducto y porcentaje de descuento, nada ms.
As que no afectar a nada y no vale la pena considerarlo, distinto sera si no se prev y
despus s que afecta. Por lo tanto dejaremos los mismos campos que en Proveedores.
Vamos con las Compras y las Lneas de Compra. Lo que nosotros adquirimos.
Necesitaremos
Algo ms? No parece, ahora tenemos que saber lo que se compra y relacionarlo con
stock ms tarde, veamos.
Tenemos con ello la relacin con el documento de compra, y habr tantos registros
como lneas contenga. Puesto que los precios no los tengo que tocar slo me interesa el
Producto que entra y su cantidad para que luego se refleje en el stock.
Pero surge una incgnita. Tanto en Compras como en Ventas, puede haber
devoluciones. En compras las devuelvo yo, en Ventas me las devolvern a m, y
lgicamente pueden ser de una lnea comprada o vendida o de la totalidad. Y yo no s,
si esto se repercute en un nuevo documento o una anulacin del recibido o generado.
Tengo que informarme. El telfono de sta gente...
- Construcciones BigBang? - S, dgame - Soy el analista, Digenes puedo hablar con
quien me aclare una cuestin sobre compras y ventas? -... Espero... - Dgame, Digenes
- Ver, me surge una duda. Cuando compran a un proveedor entiendo que pueden
devolverle mercanca porque llegue en mal estado, haya error o lo que sea. Se realiza
un nuevo documento? - No, se hace un asiento negativo sobre el mismo anulando el
producto recibido - De acuerdo, pero si slo se adquiere un producto, el documento se
anula por completo - No importa, nos expiden una factura a 0 y se da por liquidado 43
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Algo ms? No parece, ahora tenemos que saber lo que se compra y relacionarlo con
stock ms tarde, veamos.
Pero ahora sabemos algo ms. Hay que dar la posibilidad de movimientos "a mano" en
la tabla de Existencias. Tendramos dos posibilidades: 1) Crear un campo de
44
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
No parece necesaria ninguna otra cosa. Est claro que los campos 3 y 4 podan haber
sido slo uno, pues por el IdDocumento sabemos si es compra o venta, pero lo tengo
seguro? Cmo puedo tener la certeza de que la numeracin por casualidad no
coincida? Adems, no implica redundancia y es ms cmodo, dado que, lgicamente,
pueden/podemos no devolver una lnea completa, sino tan slo una parte. Mejor as.
Perfectamente, con stas notas empiezo a crear las tablas.
45
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Por principio, toda base de datos que contenga distintas tablas, debe de poder
manejar los ndices de estas. No es deseable conjuntos de tablas sin que existan
campos clave.
47
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Es normal que en las relaciones de una base de datos queden campos clave
"sueltos". No ocurre nada en absoluto, como en muchas otras cosas es imposible
saber, al crear una estructura, lo que puede incorporarse posteriormente y es
sensato que exista una previsin.
Las tablas que se generan siempre deben de tener una estructura de tal forma que ni se
agrupen muchos datos en una misma ni queden independientes del resto.
El aspecto de mayor importancia es el principio de no redundancia. Los nicos valores
repetidos en una base de datos, tenga la cantidad de tablas que tenga, son
exclusivamente los correspondientes a los ndices que intervienen.
Como principio bsico, siempre es preferible la subdivisin en tablas a que estas sean
pesadas, con muchos campos. Dentro de una lgica, si tenemos una base de datos de
libros en el que slo nos interesa el autor y el ttulo, resulta absurdo crear ms de una
tabla, aunque pueda darse redundancia en los autores. Pero si, por poner un ejemplo, se
incluye un campo "materia de la que trata" debe de ser una tabla distinta relacionada
con la de libros, y en ste ejemplo s tendra lgica permitir claves primarias auto
incrementales porque internamente las utilizar el gestor de la base de datos.
Pasemos a Asistentes de bsqueda.
La primera opcin que podemos realizar, puesto que por lgica de trabajo se incluirn
las tablas de Productos, Clientes, Proveedores y Existencias existentes, ser la seleccin
de Producto cuando se incluya un Stock. Sera la relacin que se puede apreciar.
48
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
No pondremos imgenes puesto que es un tema ya visto. Pero cada compra tendra que
enlazarse con un Proveedor, cada venta con un Cliente, cada Lnea con su Documento
correspondiente, etc.
Y por fin terminemos las Relaciones.
Habra que incluir algunos datos y probarlo, cosa que no he hecho. Por lo que
tericamente lo que se podra apreciar es lo siguiente.
En ellas estn incluidas, como se puede ver, las integridades referenciales. Cada una
de las relaciones la posee, en algunos casos para efectuar cambios y en otros incluyendo
la anulacin de los asientos si en la tabla "maestra" desaparece el valor que origina la
relacin.
Consultas.
Existen distintas formas de generar consultas, y de igual manera hay consultas que
permiten realizar opciones diferentes. Y es que en ste caso el trmino consulta
resulta demasiado ambiguo o confuso pues con carcter general el verbo consultar tiene
un significado de visualizar, buscar documentacin, etc. Cabe interpretar que la posible
confusin procede del trmino Query (consulta) pues el estndar de las bases de datos
procede de ste trmino, SQL (System Query Language), y por el contrario a lo que
cabra pensar, con l se pueden realizar visualizaciones de datos tal y como entendemos,
pero tambin la creacin, edicin, etc. de tablas.
Por supuestos que se podra utilizar aqu, en ste captulo, pero es un lenguaje de
programacin por mucho que su destino exclusivo sean las bases de datos.
49
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
50
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Mostrar. Tan slo tiene la opcin de activar o desactivar. Tan frecuente es una
como la otra, dependiendo del trabajo que se realice. Es posible que se tenga
inters en un campo determinado porque sirva de seleccin, clculo, etc., pero
no en que se visualice, de alguna manera sera como un campo de trabajo y no
resulta interesante que se vea como resultado de la consulta.
Criterios. Se estableceran las condiciones que deben de cumplir los campos, que
pueden ser simples o compuestas, y en este caso iran unidas por dos operadores:
AND (Y) u OR (O). El operador AND indica que forzosamente las dos partes o
condiciones unidas por l deben de darse, mientras que OR establecer que se da
o bien una o bien la otra o bien las dos. Por ejemplo, si estuvisemos
consultando la tabla de Proveedores se podra incluir una condicin en la que
slo aparezcan los de una provincia, pero tambin en ms de una, como podra
ser Madrid y Guadalajara, por lo que en el primer caso sera un criterio simple y
en el segundo compuesto a travs de OR, pues el AND obligara a mostrar a
todos aquellos que fuesen de Madrid y Guadalajara al mismo tiempo, lo que
resulta imposible habida cuenta que slo los ubicamos en una provincia.
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
que se van a incluir todos los campos, mientras que si hicisemos lo mismo sobre
cualquiera de ellos, se accedera tambin a una nueva columna, pero slo por el campo
seleccionado.
Cuando posicionamos el cursor del
ratn en la cabecera de una columna,
se convierte en una flecha hacia abajo
. Si se pulsa sobre la columna
cambia a una tonalidad oscura que
indica que se encuentra activa,
podemos arrastrarla con el botn
principal del ratn y cambiar su
posicin con otras, como tambin
utilizar las opciones del botn
secundario para cortar, pegar, etc. Es
lo que se ve en la imagen.
Si utilizsemos en la figura que podemos apreciar la opcin de Sumatorio (psilon) nos
reportar un error habida cuenta de que el comodn (*) hace referencia a la totalidad de
los campos de la tabla y por lo tanto no se pueden efectuar operaciones.
Generacin de condiciones.
Si se quiere conseguir que se cumpla una condicin de igualdad, basta con escribir el
valor deseado en la lnea Criterios. Los textos van encerrados entre dobles comillas,
pero lo realiza Access automticamente.
De la misma forma se puede utilizar el generador, pulsando
sobre la mencionada lnea con el botn derecho. Se abrira el
men contextual que se puede apreciar. En l tenemos todas
las opciones de igualdad, mayor que, menor que, distinto, etc.
No es necesario, de la misma forma se puede ejecutar en el
Criterio, pero en ese caso no sera suficiente con la indicacin
del valor, pues si no se le indica lo contrario se asume que es
de igualdad, as en el caso de distinto que, habra que
anteceder el operador correspondiente, que sera <>. Se puede
visualizar en la imagen.
52
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
53
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
54
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Como se aprecia el campo con el ndice 50003 sigue sin aparecer. Y con ello podemos
apreciar lo primero que nos interesa que es la forma en que acta una relacin y ms
lejos, cmo lo hace una relacin de uno a uno.
El campo ndice de una tabla, cuando se relaciona con otro, genera un vnculo que a
todos los efectos sera como si se tratase no de dos tablas sino de una sola. Pero adems,
en ste caso la relacin es la mencionada, de uno a uno, o en otras palabras, a un campo
ndice de la tabla Productos se corresponde uno y slo uno de la tabla Existencias. Si
esa condicin se rompe como ocurre en este caso, carece de sentido pensar que la unin
de ambas tablas mediante sus ndices va a dar lugar a algo distinto de lo que vemos.
Por supuesto que si se establece una consulta sobre la tabla Productos sin relacin con
cualquier otra, aparecern todos ellos, pero no en tanto exista el vnculo y se realice la
consulta considerndolo, como es el caso presente. Estamos obligando a que siempre
que exista un producto tambin exista el registro correspondiente de Stock, por ello los
campos clave deben de ser idnticos y contener los mismos valores. Y por ello tambin
se genera una integridad referencial de tal forma que si se cambia, o elimina en ste
caso, uno cualquiera redunde en ambas.
Consultas de visualizacin.
Al elaborar cualquier base de datos es no slo muy comn, sino casi continuo, que el
nombre de los campos sean descriptivos para quien elabora las tablas, pero no para
quien las puede manejar. Por lo que en Consultas como en otras operaciones que exceda
el rea de anlisis y creacin, hay que definir unas
cabeceras legibles.
Para ello, entre otras cosas, se utiliza la Hojas de
propiedades que aparece en la parte derecha de
la pantalla estando en forma de Vista Diseo.
Como aparece en la imagen cuando se pulsa en la
celda correspondiente a un campo.
Puede llamar la atencin que realizando una
consulta exista una opcin de Mscara de
entrada. Ya se dijo que estas operaciones van
ms all de la visualizacin de datos, por lo tanto no debe de extraar, aunque la parte
de consultas de actualizacin, accin, actividad o como se quiera llamarlas, las veremos
un poco ms adelante.
55
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Si sentimos curiosidad sobre este tema podemos pulsar en el icono Ver, el que
utilizamos para cambiar la vista en modo Diseo, y considerar lo que se define como
una Vista SQL. En este caso concreto nos mostrara lo siguiente:
SELECT Productos.Descripcion, Existencias.Stock, Existencias.Stock_minimo
FROM Productos INNER JOIN Existencias ON Productos.IdProducto =
Existencias.IdProducto
WHERE (((Productos.Descripcion)<>"Yeso blanco") AND
((Existencias.Stock_minimo)>50))
ORDER BY Productos.Descripcion;
Esto lo podramos escribir nosotros si utilizsemos esta forma, ms compleja, de
realizar operaciones. Al fin y al cabo se puede presuponer que muchas de las
actividades de las opciones de Access no son ms que una forma de asistentes para
ejecucin de cdigo de ste tipo, aunque visualmente no sea as.
De intentar traducir el prrafo anterior obtendramos algo de ste tipo:
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
57
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
58
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
59
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Pueden generarse por varios motivos, pero no son ms que de trabajo de ste tipo de
operaciones. Entre las causas de creacin, y que hay que tener en cuenta, ocurre que se
respetar la relacin existente, pero va ms lejos, de existir dos campos con el mismo
nombre en distintas tablas generar en la Consulta tambin una relacin (aspecto poco
entendible para quien suscribe y cuyas ventajas no soy capaz de ver, pero lo cierto es
que lo hace y hay que tenerlo presente). Pero no es el nico motivo.
Relaciones externas.
En un ejemplo anterior vimos que cuando no existe una relacin entre tablas, que
debieran tenerla, por ejemplo, estn indexadas de uno a uno y cualquier de ellas tiene un
valor que no aparece en la otra/s, el contenido de sa no se visualiza. Esto es lo lgico
que suceda y debe de ser as. Pero Access no lo considera de una forma estricta.
Si en el diseo de la Consulta realizamos un doble clic en la lnea de unin donde se
visualizan las relaciones, nos aparece una pantalla que es la que observamos a
continuacin.
60
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Consultas acumuladas.
Se suelen denominar tambin sumarias, pero el trmino tiene una connotacin jurdica
que me atrae poco para estos temas. De lo que se trata es de conseguir unos resultados
que implican la manipulacin de distintos campos totalizando segn unos criterios. Por
supuesto en este caso no hay modificacin de datos (edicin, insercin, etc.) como s
puede haber en otro tipo de consultas y que veremos algo ms adelante.
Conversin de una hoja de clculo en tabla de Access
Con los ejemplos que tenemos, no hay datos por utilizar, son muy pocos, por lo tanto
importaremos una tabla de Excel de las utilizadas, concretamente la denomina Empresa.
Como se puede apreciar, hay que entrar en Datos Externos e Importar a una hoja de
clculo Excel. [A-102] Los pasos ms importantes son los siguiente.
Seleccin del fichero de Excel que queremos importar, indicando a qu tabla nos
referimos.
61
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Hay que seleccionar el nombre de los campos, y en este caso nos interesa el encabezado
de cada columna, pero no siempre es posible y nos advierte. Aceptamos la intervencin
de Access para realizar las correcciones oportunas.
Con todo, hemos de especificar la clave principal. No queremos que nos la asigne
Access pues creara un auto numrico que en definitiva es lo que tenemos creado en el
paso anterior, por lo que le identificamos nosotros.
62
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Por lo dems, se acepta y nos trae la hoja de Excel como nueva base de datos. Con ella
vamos a trabajar este tipo de consultas.
Eliminamos entonces todos los campos no deseados, si es que se han incluido, y
redimensionamos los restantes, pues la importacin se sostiene bajo unas premisas fijas
de tipos de campo. Una vez efectuadas las modificaciones queda el contenido de la tabla
de la forma en que se aprecia.
63
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Podemos perfectamente incorporar condiciones, como hemos dicho, por ejemplo que
slo visualice aquellos totales superiores a una cantidad, que sera lo que aparece en la
imagen.
65
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Ejecutaremos para ver que funcione bien qu es esto! Hay columnas rellenas con una
serie del tipo ##########. Vale, no ocurre nada pues es algo que pasa y lo nico que
significa es que el dato obtenido no cabe en el tamao de la columna de visualizacin,
por lo que slo hay que agrandarla. Me ha ocurrido con el campo Hijos, pero es que,
como se puede ver en la imagen superior, le he
indicado que calcule el promedio y aparecen
decimales, hasta 13 posiciones. Pero me resulta
un tanto extrao cuando en la Hoja de
Propiedades, la que aparece a la derecha de la
pantalla, le estoy indicando 2 lugares decimales
para que esto no ocurra.
Estoy seguro que si modifico el formato de
Nmero General y le indico que sea Fijo, esto
no va a ocurrir, pero no comprendo por qu
ahora s. Reconozco mi ignorancia, pero si salgo de ella, pues no parece tener mucho
sentido este comportamiento, lo indico aqu. Y s, como prevea, tanto los formatos
Fijos como Estndar reconocen los dos decimales.
Tenemos ahora la tabla Empresa y la Consulta denominada como se ha dicho, y ambas
estn cerradas. Realicemos una nueva Consulta sin que intervenga de forma directa la
tabla. Para ello actuamos como siempre Crear, Diseo de Consulta, y cuando nos lo
pida seleccionamos Consultas. Si pulssemos sobre Ambas tendramos las dos y
elegiramos, para este caso, la mencionada. Tras aceptar la primera tendremos lo que es
de esperar y aparece en la figura.
66
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
En ste momento
podemos realizar
las operaciones
de visualizacin
indicadas
al
inicio de ste
captulo o las
que estamos viendo a travs del Sumatorio.
Es indiferente. Podra perfectamente
obtenerse lo que se puede apreciar. Y en la
lista de tablas, una vez salvada sta ltima
podramos ver que igual aparece la Empresa
como las dos que hemos creado, con distinto
icono a su izquierda para diferenciarlas pero
nada ms.
Las opciones que se abren al pulsar el campo
Total que genera, son casi todas intuitivas. La principal es la de Agrupar por dado
que en ella se define la manera en que se van a agrupar, valga la redundancia, todos los
campos que incluyamos. Por lo que slo mencionar la opcin Expresiones que
permite incluir en lugar del nombre del campo, o aadido a ste, uno de los operadores
que hay en opciones, pero en forma de funcin, es decir, la expresin (o expresiones)
seguida de los parmetros entre parntesis, como podra ser: Suma(SumadeImpte
Sueldo)-Suma(SumadeImpte Hijo)
Realmente el ejemplo no es significativo de nada y en este caso roza lo absurdo, pero es
preferible que quede la idea de lo que se puede hacer pues ocurre, aunque no sea
frecuente.
67
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Bien. Voy a desglosar la consulta en dos. Por una parte crear una consulta normal,
considerando todas las tablas que entran a formar parte de una venta. Aunque excluya la
tabla de Existencias porque en s misma no es venta, sino el resultado de ella y para ste
caso no nos sirve. En otros procesos sera obligatoria.
Por lo tanto tenemos la consulta del modo tradicional y de la forma que se puede
apreciar, considerando aquellos campos que tienen inters en la visualizacin de los
datos.
68
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
69
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
A continuacin nos pedir las tablas que queremos utilizar. Sera lgico empezar por la
de Clientes, que es quien efecta la compra, o la venta en nuestro caso de empresa de
suministros. Pero cul es el problema? Pues que slo deja elegir una tabla, por ello
hemos creado antes una consulta que nos sirviese, para seleccionarla y tener en ella
todos los datos que precisamos. As que no elegiremos tablas sino consultas.
A continuacin nos permite seleccionar las columnas que deseemos pero con la
condicin de que el mximo sea de tres. Se mostrarn ms, para ello se realizan estas
operaciones, pero debemos de elegir cules utilizar.
Dado lo que buscamos, lo lgico sera elegir al cliente con su nombre y al producto que
se vende. Lo que podemos hacer activando cada campo con el ratn y pulsando con la
flecha a la derecha, la que aparece en la figura. Si nos detenemos a pensar el por qu no
la cantidad entramos en la filosofa de ste tipo de consultas.
No se puede dejar como columna fija un valor que deseamos desglosar, o en otras
palabras, queremos la suma de las cantidades adquiridas de cada producto, y por lo tanto
estaramos en el terreno de las consultas acumuladas. Lo podemos ver en el siguiente
paso, por ahora seleccionamos la Denominacin y la Descripcin, no precisamos otra
cosa.
No obstante voy a enumerar las siguientes capturas de pantalla para que podamos ms
tarde repasarlas. Sera aconsejable no seguir paso a paso estas lneas sino esperar a la
conclusin para que se comprenda con claridad.
70
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Fig. 1
A continuacin es cuando nos pide la cabecera del desglose que queremos llevar a cabo.
La aclaracin de la parte superior, la del texto, no parece ser muy significativa, pero s
lo es la zona inferior, la que se encuentra en la zona amarilla, pues podemos ver algo
cercano a lo que queremos. Por ello seleccionamos el identificador del producto, pues
gracias a ese campo que relaciona en la Consulta sobre la que nos basamos, al igual que
en la estructura de las tablas, por supuesto, al mismo con las lneas de venta en las que
aparece.
Fig. 2
71
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Tras pulsar siguiente como en las anteriores pantallas, nos aparece ahora la que nos
interesa como resultado, pues es la que contiene la cantidad. De haber seleccionado
antes ste campo, lo tendramos como columna fija y no podramos realizar el
sumatorio, la precisamos en ste momento que es cuando efectivamente se puede
resumir lo que buscamos, saber de cada producto las compras realizadas por cada
cliente.
Tal vez resulta algo complicado darse cuenta de los por qu si no se percibe de forma
clara las relaciones que unen las tablas, los campos que se han utilizado. Debe de ser un
proceso estudiado para conseguir un fin concreto, que es el que vemos en la imagen
inferior, la suma de cada uno de los productos considerando los clientes, pues ambos
son los campos que hemos elegido.
Fig. 3
Finalmente nos permite concluir la consulta o modificarla. Pensamos que est correcta,
por lo tanto aceptamos finalizar. Y obtendremos el resultado que se aprecia, que
consiste en lo que hemos ido eligiendo.
72
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
73
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Lo que hemos conseguido con ste sistema es la fila que aparece subrayada en rojo,
pues identifica que se trata de una referencia cruzada e incluye encabezados de fila o
columna y valor. Y genera un campo de clculo, rodeado en la imagen por lo que
pretende ser un crculo verde.
Veamos la filosofa de ste tipo de consultas de referencias cruzadas de una forma ms
simple.
Del mismo modo que hemos realizado la consulta anterior podemos hacerla sobre algo
mucho ms fcil. Utilizaremos la tabla Empresa para conocer el importe total del salario
considerando los grupos existentes.
Lgicamente habra que elegir esa tabla en concreto, no hay otra. Y a partir de ah
tenemos distintas opciones. La ms sencilla es utilizar como encabezados de fila a los
grupos concretos, pues es lo que queremos desglosar por totales, pero la filosofa es
encontrar la interseccin lgica de filas y columnas y en ella, en esas celdas concretas,
establecer el clculo que nos interese, de tal forma que si se utiliza una fila o una
columna no pueden participar en ese clculo final.
Por lo tanto podemos pensar, atenindonos a lo que hay en la tabla, qu sera ms
positivo. Dado que es un ejemplo haremos un estudio para conocer si existe en la
empresa discriminacin por sexo, por lo que vamos a buscar slo dos filas: hombres y
mujeres, es decir, el campo Sexo.
74
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Pero como lo que nos interesa es saber si por grupos se cobra ms o menos lo mismo, la
cabecera de las columnas tendrn que llevar ese dato, es decir, deben desglosarse por el
campo Grupo.
75
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Y por ltimo qu buscamos saber? En este caso no el total de lo que suman los
importes, sino el promedio, porque nos interesa evaluar las diferencias entre los dos
sexos. Slo se trata de utilizar una funcin u otra.
De los resultados vemos que del grupo 7 no hay mujeres, y en los siguientes tienen el
mismo sueldo, dejando a un lado la totalizacin que a estos efectos no nos incumbe.
Estamos ante una empresa anti sexista, para que luego digan.
Soy consciente que llegados a ste punto, y dada la simpleza del ltimo ejemplo, se
pensar el por qu no haber empezado por l. La respuesta es simple, porque no debo.
Una tabla aislada no se da casi nunca, tan solo en trabajos puntuales que se busque
obtener alguna informacin concreta, casi siempre entran en juego distintas tablas.
Pero hay otra razn mucho ms poderosa y por la cual sacrifico la comprensin fcil de
ste tipo de consultas por otra ms compleja. La visin del por qu de una buena
estructuracin de la base de datos. Y un ejemplo de error que inutiliza las consultas es el
que aparece en la parte superior con esa relacin 1 a 1, equivocada. Es del todo
76
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
necesario para quien utilice bases de datos que la mente se acostumbre a pensar las
repercusiones que tendr despus la estructura de la base, que debe de funcionar como
un todo, no como parcelas independientes, y la unin de ese todo, es decir, los ndices o
campos clave, es imprescindible que sea correcta pues de otra manera no se obtendrn
resultados coherentes.
Consultas que editan datos o tablas, o consultas de acciones.
Antes de entrar en este tipo de Consultas convendra ver cmo Access permite la
introduccin de registros teniendo en cuenta las vinculaciones o indexados entre ellos.
Para esto vamos a utilizar compras realizadas por nosotros como empresa. Y
desactivando cualquier enlace que no nos afecta salvo a esta operacin concreta,
visualicemos las tablas que intervienen.
La eliminacin de otros ndices la he realizado por dar mayor claridad, pero siempre es
conveniente tener la totalidad de las tablas con sus enlaces a la vista en el momento de
trabajar con ellas.
Bien, desde la Vista de Hoja de Datos se puede proceder a la introduccin de los
mismos. Para lo cual se debera comenzar el proceso desde la primera tabla, la de
Proveedores.
El funcionamiento es claro, a travs de los signos + seguir por el orden que indican las
relaciones creadas. Veamos la siguiente imagen.
77
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
78
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Tras ello nos aparece la ventana para registrar el nombre de la nueva y optar por
incluirla en la base de datos que tenemos activa o dar el nombre de otra base de datos.
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Es parte de las medidas de seguridad que toma Access y que sera necesario eliminarlas.
Habida cuenta de que estamos trabajando con datos propios, poco dao pueden hacer en
cualquier sentido. Por lo tanto, en Opciones de esa figura anterior, se le indica que
Habilite el contenido para la base de datos con la que estamos trabajando.
Pero ya puestos tambin
sera interesante eliminar
todos
los
avisos
de
actualizacin que salen cada
vez que se modifica algn
dato. Y esto se encuentra en
el icono de Office y en las propiedades Avanzadas de Access. Si se eliminan las marcas
omite los mensajes de aviso.
El problema de habilitar el contenido de la forma anterior es que cada vez que se acceda
a la base de datos nos encontraremos con el mismo tema, y a veces sorprende por
olvidos lgicos. Resulta bastante preferible optar por abrir el Centro de Confianza, que
aparece resaltado en rojo en la figura.
80
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Una buena eleccin sera que todo lo referente a un tema sea fiable, por lo que
indicamos en Ubicaciones de Confianza la carpeta que estamos utilizando. Tan slo hay
que elegir la ruta concreta y aceptarla. Si, como se puede apreciar, se considera que las
subcarpetas deben de considerarse tambin seguras activaramos la opcin que aparece.
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
inferior, deben aparecer los campos sobre los que queremos efectuar una bsqueda o
aadir Criterios, habida cuenta de que nos interese actualizar una serie de registros y no
otra, y adems, todos aquellos que van a participar en la actualizacin. Por poner un
ejemplo, hemos cometido un error en las compras de yeso, necesitaremos un filtro o
criterio de bsqueda slo para esos registros con todos los campos que intervienen en la
rectificacin o actualizacin de las tablas afectadas.
Como se puede apreciar en la imagen, he realizado una Consulta incluyendo un filtro o
condicin sobre el artculo 5002, que en mi ejemplo equivale a yeso blanco.
82
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Esto, que parece un trabajo innecesario con lo que tenemos, debera de enfocarse bajo
un prisma real, por ejemplo que tuvisemos 10.000 compras efectuadas, que
parametricemos mejor la consulta para poder introducir cuantas variables nos sean
necesarias y no fijar condiciones de constantes que, normalmente, sern poco vlidas en
un ejemplo de ste tipo. Sera distinto, y s convendra la utilizacin de constantes como
hemos hecho con el cdigo de producto, si se tratase de actualizaciones de otro tipo, por
ejemplo dependiendo de un campo de otra tabla, para lo cual en Actualizacin a:
tendramos que introducir en nombre de campo entre los corchetes [].
Tiene restricciones, la ms significativa es que no se pueden modificar campos clave,
pero s tiene validez en el caso de que la actualizacin afecte a varios que no lo sean, en
una cantidad indefinida, salvo de tipo autonumrico que tampoco son admisibles ya que
su valor es generado de forma automtica. Como no lo son aquellos cuyo contenido
proceda de la realizacin de un clculo y cuya explicacin est pendiente.
83
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Eliminar los criterios y proceder a grabar la consulta con el nombre que indiqu al
principio, ConsultaCompras, para poder utilizarla en ms ocasiones.
Una cuestin que no se ha mencionado, y vale la pena, es que no tenemos por qu estar
siempre con las opciones de la parte superior, en las pestaas, hay bastantes que se
pueden conseguir de forma simple pulsando con el botn secundario sobre cualquier
Vista de Diseo, en la figura podemos ver un desglose de las Consultas existentes.
Ejemplo de estructura.
Cmo estructurar una base de datos.
Se nos ha ofrecido el trabajo siguiente:
Empresa de realizacin de cursos informticos.
1. Profesores.
84
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Nos puede asaltar una duda cmo saber que un profesor es apto para la realizacin de
un curso? Deberamos de establecer una tabla de conocimientos o materias para
asegurarnos? Sera posible pero poco deseable. En principio no se establece en el texto
que tengamos que estudiar qu profesor es idneo para qu curso. Y seguramente no
nos lo indican porque sera muy amplio y ambiguo. Es posible hacerlo, todo es posible,
pero intil si de forma especfica no nos lo piden.
As que nos basaremos principalmente en desarrollar las tres que nos indican y que
claramente intervienen, fcilmente podran tener los campos que se pueden apreciar a
continuacin.
Menos datos que los indicados en las tablas de Profesores y Alumnos son imposibles.
Por supuesto que hay mayor nmero de datos vlidos, pero para nuestro esquema
tenemos suficiente.
Los campos de Cursos los necesitamos para obtener las consultas que se indican. El
nico que sobrara en principio es la Fecha de realizacin, pero resulta bastante obvio
como campo el que, al menos, se sepa cundo empieza, aunque segn el texto se podra
excluir sin problemas.
Qu campos clave necesitamos? En cuanto a Profesores y Alumnos parece automtico
el considerar el DNI, pero en Cursos no existe nada parecido, por lo que conviene crear
un identificador como campo clave, considerando que no ser repetido. Si se diese la
posibilidad de dos cursos del mismo tipo en todos los sentidos, cabra un
replanteamiento pero no se da, slo nos dicen que puede ser presencial o en lnea, por lo
tanto un campo booleano (Si/No) es ms que suficiente. En cualquier caso, si se diesen
dos cursos exactos, la academia tendra igualmente que diferenciarlos, por lo que es
lgico crear ese campo y considerarlo clave primaria.
Para poder ver el proceso de cmo estructurar a continuacin con absoluta claridad,
vamos a considerar las tablas de forma dual, habida cuenta que un profesor no tiene
ninguna relacin con los alumnos si no es a travs del curso que se realiza, y viceversa,
por lo tanto el nexo que une a Profesores y Alumnos es la tabla Cursos. Veamos
entonces el problema sin esa vinculacin directa de las dos tablas mencionadas.
Qu tenemos para empezar a pensar? Por ejemplo la relacin entre los profesores y los
cursos que se realizan. Ah nadie puede dudar que hay un vnculo claro, un profesor sin
cursos no es nada, y un curso sin profesor tampoco. Deberamos ver lo idneo que
resulta que un profesor determinado realice un curso concreto? O en otras palabras,
considerar sus conocimientos dando entrada a una tabla con stos?, no, lo descartamos,
86
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
ya hemos dicho anteriormente que ni nos interesa ni se nos pide. Ser la academia quien
juzgue a quin cree conveniente en cada caso, para nosotros como informticos no nos
importa en ste ejemplo.
Bien. Est claro que habra una relacin directa entre las dos tablas si un profesor puede
dar un curso y solo uno, y a la inversa si un curso puede ser dado por un profesor y no
por otro, pero la realidad de lo que se nos indica no es esa, pues en Condiciones nos
hablan justamente de lo contrario. Por lo tanto hemos de establecer esa relacin, no cabe
duda, pero no de forma directa. Estaramos de acuerdo en esto o son posibles otros
mtodos? Ah! Alguien opina lo contrario, veamos:
De acuerdo. Si pensamos un poco resulta que nos encontramos con que un curso puede
ser dado por varios profesores y cada profesor pueda dar ms de un curso, por lo tanto,
lo que propone de fondo el compaero que pregunta es establecer una relacin de
Varios a Varios. Estara bien si no fuese porque nunca sabramos qu cursos y
profesores intervienen en la relacin. Para ello no tenemos ms remedio que utilizar una
tabla accesoria.
De una manera visual lo que buscamos es algo de ste tipo:
87
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Se puede apreciar que tres profesores dan una sola clase, pero uno de ellos, Juan, da
dos. Si existe la posibilidad de que se produzca un caso, o miles, da lo mismo, en los
que un profesor, o un campo, el que utilicemos hablando en general, se relacione con
ms de uno, sabemos qu tipo de relacin se trata, de 1 a varios, siempre, aunque sea
una excepcin, en informtica no hay excepciones, slo previsiones.
Bien, pero cmo creamos la tabla? Pues parece muy simple, siguiendo la imagen
anterior sabemos que los profesores tienen un campo clave que ser su DNI y los curso
un identificador de cul se trata, vemoslo de esta otra forma.
Parece muy claro, slo necesitamos una tabla con dos campos, IdDNIProf e IdCurso. Y
si el caso fuese el de la figura tendramos que incluir tantos registros como cruces
aparecen, que no son ms que aquellos cursos que dan los profesores.
De esta manera vinculamos las dos tablas a travs de una auxiliar que, adems, sabemos
que guarda una relacin de 1 a Varios.
Pero detengmonos un momento. Es muy importante la coherencia de los datos. Si una
persona escribe una clave la posibilidad de error es simple, pero si selecciona una clave
de entre todas las posibles, esa posibilidad puede significar que confunda una clave con
otra y lgicamente sea incorrecto, pero no rompe la estructura de los datos, que como
analistas de la B.D. que somos, es lo que nos interesa.
Por lo tanto Qu debemos hacer? Muy simple, antes de establecer las relaciones
debemos de crear los contenidos de los campos de forma coherente, es decir, utilizar en
Tipo de Datos de la ventana de Diseo, el Asistente para bsquedas y que sea l quien
recoja los posibles valores de los IdCursos existentes, un paso similar a ste.
88
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Una vez efectuado, podemos perfectamente crear la relacin que sera as:
Esta es la relacin que nos importa. Puede ser que Access genere tablas paralelas a las
nuestras? Pues s, en cuanto lo necesite, pero es un funcionamiento normal. Lo que a
nosotros nos importa realmente es lo que se aprecia en la imagen superior.
Y pensemos en Alumnos hay alguna diferencia con relacin a profesores? No la
aprecio, sera exacta, incluyendo el Asistente para bsquedas. Por lo que, finalmente
nuestra estructura no sera ms que los dos bloques idnticos. Lo que se aprecia en la
imagen.
89
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Sencillo verdad? Entiendo que no hace falta decir, entre otras cosas porque ya se ve,
que la integridad referencial hay que activarla, siempre hay que hacerlo, no creo que sea
una opcin sino un mecanismo de obligado cumplimiento.
Ahora cualquier consulta que nos hagan nos funcionar sin problemas. Veamos en
Diseo la primera.
Formularios.
Son los que generan las pantallas para utilizar las tablas, editar registros, aadir, etc.
El sistema que vimos desde la hoja de diseo no deja de ser vlido, pero slo para quien
ha realizado el estudio de la base de datos, si eso mismo, tratndose de una base con
muchas tablas que es lo normal, se lo entregamos a otra persona, o a nosotros mismos
pasado un tiempo, lo ms probable es que la conclusin sea perdidos entre los mas.
Por lo tanto, veamos cmo se generan pantallas de uso fcil.
90
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Como se aprecia en la misma, hay un desplegable de todas las tablas que tenemos
opcin de utilizar, y ms an aunque resulte algo extrao, tambin de las consultas.
Hay que tener claro cul es el fin que se busca, pues podemos seleccionar de cada una
todos sus campos o slo unos pocos, y todas las tablas y consultas o slo una, depende
de lo que nos interese hacer. En ste ejemplo seleccionar, las tablas de Alumnos y
Cursos, tendra sentido, pero no mezclar ms.
91
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
92
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Podra no haber sido as, si tenemos ms de dos tablas no admitira ese sistema, habra
que elegir distintas opciones, como se puede apreciar en la imagen, que seran formas de
visualizar una sola o ms de dos tablas.
En cualquier caso siempre se abrir la ventana del estilo que se quiere aplicar. Es un
men amplio cuyo fin es visual.
93
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Puesto que hemos elegido dos tablas es algo ms complejo, aunque tambin ms lgico
para este ejemplo, por lo que nos aparece una nueva pantalla en la que nos pide el
nombre de cada una de ellas.
94
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
95
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Como se puede apreciar hay tres zonas diferenciadas: encabezado, detalle y pi. Y la
que contiene los registros es detalle. El encabezado y el pi se utilizar para introducir
aquella informacin que
consideremos, desde un
rtulo
hasta
cualquier
mensaje.
En la pestaa Organizar
tenemos a la derecha y con
la leyenda Mostrar u Ocultar posibilidades distintas. Dependiendo de las dimensiones
de la pantalla que utilizamos se visualizar comprimida o extendida, es decir, como
aparece en las imgenes.
Las opciones de Cuadrcula y Regla con obvias, hacen lo que se puede esperar. Pero hay
dos con parecido nombre e icono mientras que sus actuaciones son distintas, se pueden
apreciar en la segunda figura como Encabezado o pie de formulario, que funciona
dependiendo de qu haya en el formulario, que veremos, y la de Encabezado o pi de
pgina que simplemente oculta pero no modifica nada.
96
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
la
En segundo lugar
aparecen aquellos
que se encuentran
disponibles
en
tablas relacionadas.
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
98
Access 2007
El Rinconcito Informtico
http://www.elrinconcito.com
Vamos a numerar los iconos del rea de Controles y echaremos un rpido vistazo a los
ms frecuentes.
99