Вы находитесь на странице: 1из 99

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

Elementos de una B.D.


Como hemos dicho se componen de un nmero determinado de tablas. Cada una de
ellas, segn la explicacin ms o menos moderna que se realiza, es la divisin entre filas
y columnas. Cada fila se denomina Registro y contendr unos datos que son
temticamente comunes, por ejemplo, una tabla de proveedores estar constituida por
tantos registros como proveedores con los que se trabaje y su contenido puede consistir
en un cdigo, CIF, nombre, direccin, etc. Las columnas las llamaremos Campos. En el
ejemplo mencionado existir el campo cdigo, CIF, etc.
Los ndices son un tipo especial de campos que entre otras cosas se utilizan para
efectuar las relaciones entre las distintas tablas debido, principalmente, a que la B.D.
est preparada para efectuar bsquedas muy rpidas a travs de ellos. Algo que de no
existir se realizara de forma secuencial, es decir, buscando un valor desde el primer
registro y hasta el final de la tabla.
ndices de B.D.
Un ndice (index) es un campo que tiene varias capacidades, como son la ordenacin
por el mismo, localizacin rpida a travs de l y dependiendo de cul sea otras
caractersticas. Cada una de las tablas que componen la B.D. debera tener al menos
uno, y en ese caso lo normal es hablar de "tablas indexadas" o indizadas como indican
algunos autores. Y el campo por el cual se indexan se denomina normalmente "campo
clave".
En principio se pueden generar dos tipos de ndices o claves: primario y secundarios o
externos.
Cada tabla no puede tener ms que un ndice primario que, generalmente, suele ser un
campo de auto incremento, como si se tratase de un contador interno, pero no es
obligatorio que sea de ste tipo.
En cuanto a los secundarios se pueden crear tantos como sean necesarios, pero no es
aconsejable una utilizacin abusiva. Lo veremos ms claro si tratamos el siguiente
punto.
Bases de datos relacionales.
Realmente es la nica forma de trabajar de manera efectiva en la actualidad. En B.D. de
escritorio no son imprescindibles pero s muy aconsejables para relacionar las distintas
tablas entre s. Y la relacin se efecta a travs de los ndices de cada una de ellas.
Vamos a pensar en un ejemplo.
Somos una tienda informtica que quiere generar una base de datos para llevar todo el
control de sus operaciones, aunque el ejemplo le hagamos a un nivel pequeo.
Busquemos las tablas que no dependen de ninguna otra y son bsicas, a bote pronto
nuestra misin es vender, y por lo tanto la primera debera de ser lo que vendemos, que
la he definido como Tabla de Productos. Pero estos previamente los adquirimos, es
decir que precisamos una Tabla de Proveedores. Y por supuesto tenemos unos clientes a
quin vender que tampoco dependen de ninguna otra tabla, as que creamos la Tabla de
2

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

Veamos un ejemplo de Base de Datos


Suena el telfono - Diga - Es ah donde imparten cursos de Inteligencia y Vida?
S, dgame Ver, somos la academia MicroTera, sobre temas informticos, y dado que
sus alumnos son unos genios en esto querramos que nos preparasen en Access un
entorno para llevar el control de nuestras actividades No hay problema, nos pasamos
por su direccin-.
Bien, en se sitio nos indican lo que quieren que es todo lo referente a sus actividades,
pero como somos muy capaces de analizar los datos y modular el trabajo, fase de alta
importancia en cualquier tema de informtica, nos ponemos de acuerdo para generar un
proceso estructurado de lo que debemos de hacer. Una vez estudiado llegamos a la
conclusin que lo primero es trabajar con los alumnos, los profesores y los cursos que
imparten.
Estructuraremos los datos que precisamos para cada uno de ellos y que nos servir para
la creacin de las tablas. Veamos.
Alumnos.

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

Autor: Jos Luis Freire

Creacin de base de datos.


Cuando abrimos Access nos encontramos en primer lugar con una pantalla de inicio que
tiene la siguiente forma:

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

Autor: Jos Luis Freire

Como se puede apreciar ha creado por defecto un campo denominado Id (Identificador)


que lo considerar como de tipo auto incremental o auto numrico (como un contador
desde 1 en adelante) y nos pide la creacin del segundo campo, primero en nuestro
estudio.

De la zona superior no nos interesa en este


momento ms que una de las opciones, si
es que as lo queremos, y es la de Nuevo
campo. Nos proporciona una ventana que
puede servir de plantilla. Voy a utilizarla
para que se aprecie. Tras pulsarlo tenemos
en la parte derecha de la pantalla la
ventana que aparece en la figura.
Se pueden seleccionar campos de la
misma, las opciones son mltiples.
Introduzco los primeros campos que
preciso y que se encuentran en la plantilla.
Pondr los cuatro primeros tan slo y as
podemos observar cmo se introducen sin
plantilla. Por lo tanto he buscado los
campos Nombre, Apellidos, Direccin y
Telfono Particular, y los he aceptado
realizando un doble clic en ellos.

Si a continuacin entro en la opcin Ver


que se encuentra en la zona superior
izquierda necesitar guardar la tabla recin
6

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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.

Se encuentra posicionado en el campo Id porque est esperando la modificacin del


nombre si es que as lo queremos. La pequea llave que aparece a la izquierda del
nombre del campo es la que indica que se trata de un ndice, o que es la clave principal,
por ello tambin en la zona superior se encuentra activo el icono de la llave Clave
principal y debajo, con el ttulo Propiedades del Campo, tenemos el formato que por
defecto le ha proporcionado. Como se puede ver indica como tamao del campo un
Entero largo. Tratndose de un
ndice principal no admite otros
valores. Tambin incluye que lo
que se introduzca Nuevos
valores
sern
del
tipo
especificado,
Incrementalmente. No se
introduce un formato porque no
lo precisa. Si se tratase de otro
tipo, un valor numrico
cualquiera, se abrira como en
todos los casos en que se puede seleccionar. No aparecen flechas de desplegables pero
7

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

s cuando se pulsa dentro de la fila de descripcin del campo en cualquier lugar, lo


podemos ver en la imagen.
El desplegable estar relacionado con el tipo de campo de que se trate, como la mayora
de las opciones dentro del diseo.
El ttulo lo dejamos en blanco pues slo es til para otras acciones. Por supuesto si se
trata de la clave principal debe tomar el valor que se aprecia, Indexado sin duplicados.
Las etiquetas inteligentes tambin se utilizan para otros temas. Y la alineacin del texto
en este caso nos da lo mismo, basta con General, en otros casos dependera.
Y puesto que estamos en modo Diseo introduciremos aqu los restantes campos, pero
antes modificaremos el campo
Telfono para que no existan
dos palabras como nombre.
Bien, basta con escribir en
cada fila e indicar el tipo de
campo, el resto de las
caractersticas aparecen en la
parte inferior, tan slo
modificaremos la longitud por
una menor, por ejemplo 80
caracteres, no es buena
costumbre
despilfarrar
espacio. Lo mismo haremos con la fecha de nacimiento que denominaremos Fnacimiento y vamos a forzar un contenido del tipo adecuado, es decir, Fecha/hora y en
el formato la de Fecha corta que es la que conocemos dd/mm/aaaa. Es lo que se puede
apreciar en la imagen.
Por otro lado un campo memo no me parece apropiado para una direccin. En general
estos son un tipo de campos especiales con capacidad para recoger un volumen
importante de informacin en forma de escritos, imgenes o contenido variado y
dependiendo de la base de datos que se utilice, pero para una direccin no vale la pena.
Un campo de tipo texto en Access tiene una dimensin mxima de 255 caracteres,
entiendo que es suficiente para nuestro propsito, por lo que lo modifico.
Por lo tanto la tabla de alumnos nos queda de la forma que se puede ver en la figura.

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

En este momento tenemos una base de


datos, denominada Curso, que contiene
solamente una tabla de nombre Alumnos.
Vamos entonces con la de Profesores. Y lo
haremos desde la pestaa Crear opcin
Tabla, nos muestra el mensaje que se puede
apreciar. En la ocasin anterior hemos
realizado la creacin a travs de la pgina de
Diseo, ahora lo realizaremos directamente,
sin tener en consideracin el contenido de
los campos hasta una segunda fase.
Tan slo pulsamos la creacin de la tabla y en este momento hay que tener cuidado,
supongo que todos hemos cado

en el error cuando se comienza de esta forma, porque


si introducimos el nombre del campo donde
supuestamente aparece, lo que estaramos haciendo es
aceptar un nombre por defecto e incluir contenido. Es
errneo. Veamos en la imagen un campo en vista de
diseo para el caso en que lo hicisemos de esta
forma.
Por lo tanto lo que se debe de hacer es posicionarse
sobre el campo que nos interesa y pulsar el botn
secundario del ratn para que aparezca el men
contextual y seleccionar la opcin de Cambiar
nombre de columna.

Obtendramos de forma rpida lo que se aprecia.


Guardaremos la tabla porque Access no tiene
exactamente las opciones de guardar cada X
tiempo, como ocurra con Word, y los accidentes
pueden ser frecuentes.

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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.

Texto. Se utiliza para guardar cualquier tipo de texto,


el que sea, letras, nmeros o caracteres especiales, siempre
que no excedan del tamao mximo permitido que es de 255
caracteres.
Es importante considerar una cuestin. Por ejemplo, un
cdigo postas sera texto o nmero? La ventaja de utilizarle
como nmero es que no permite incluir una letra, pero aunque
consista en cinco dgitos numricos no es lo lgico ni lo
deseable, a la larga, con mayor experiencia en bases de datos,
nos daremos cuenta de que no es el tipo idneo, sino que debe
de ser un campo de texto, habida cuenta que las posibilidades
en relacin a potenciales funciones, bsquedas, etc. es mucho
10

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

ms amplia.
o

Memo. Aunque normalmente no se indique, ignoro el motivo, no se


refiere a un campo tonto sino que procede de la palabra
memorndum. Con ello ya sabemos su utilizacin que sera para todos
los campos que excedan los 255 caracteres de un texto. Hay que
considerar que ni siquiera Microsoft aconseja su utilizacin, tiene
distintos lmites tratndose de Access que consiguen en ocasiones una
operativa incmoda, aunque es perfectamente vlido. En bases de datos
de mayor potencia suele denominarse como campo de tipo blob con
capacidad de incorporar prcticamente cualquier cosa. Pero en sta base
de datos lo sustituyen en buena medida por los del tipo de objetos Ole.
La dimensin total de un campo memo es de 65.536 caracteres.

Nmero. Como su nombre indica sirve para la introduccin de nmeros,


pero hay que considerar lo dicho en los de tipo Texto, es decir, incluir
ste campo en introduccin de dgitos que puedan servir para realizar
operaciones matemticas, salvo que sean unidades monetarias, pues en el
caso de Access tiene un tipo de campo distinto habida cuenta del
tratamiento de los redondeos principalmente, en caso contrario como los
mencionados cdigos postales, nmeros telefnicos u otros, son
preferibles los campos de texto. Teniendo en cuenta el tipo de dato y la
longitud se dividen en distintos subtipos.
Byte. Puede contener valores enteros y positivos de 0 a 255.
Entero. Puede contener valores enteros desde -32.768 hasta +32.767.
Entero largo. Positivos y negativos con un valor lmite de algo ms de
2.100 millones
Los tipos Simple, Doble y Decimal admiten cantidades muy elevadas,
desde el 3,4 * 10 ^ 38 del Simple hasta el 1,79 * 10 ^ 308 en Doble. El
Decimal soporta una cantidad de valores de ste tipo superior a los
normales, hasta 10 ^ 28. Supongo que no es necesario comentar que ese
signo angular es la potencia, en ste caso 10 elevado a 28.
Cuando el nmero es mayor que la capacidad de visualizacin que
Access le ofrece, lo que hace es mostrarse como valor hexadecimal, por
ejemplo:
1,23456789012346E+19

Fecha/hora. Sirve para la


introduccin de ste tipo de
datos. Existen tambin
distintos formatos y se
pueden apreciar al efectuar
la seleccin, tras pulsar,
11

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

como siempre, en la lnea correspondiente al campo y seleccionar con la


flecha del desplegable. Seran los que se puede apreciar en la imagen.

Moneda. Su nombre lo indica, aunque no


es necesario que sea exclusivamente para
valores monetarios, la cuestin est en el
tratamiento de los redondeos pues ste
tipo de campo, que existe en Access y no
en otras bases de datos, tiene una
precisin especial de hasta 15 dgitos
enteros y cuatro decimales, si aumenta el
nmero de stos se truncan y redondean
de la forma estndar. Como se puede apreciar en la imagen que sigue a la
seleccin de ste tipo tambin existen distintos tipos.

Autonumrico. Es un entero largo que funciona como contador, es decir, en cada


registro aumentar su valor en 1, gracias a lo cual no podr darse nunca un
nmero repetido en dos registros de la misma tabla, por eso su utilizacin en
campos clave. Pero tambin puede ser de rplica que con todo el cuidado
necesario indico que es un tipo sobre el cual se genera un nmero aleatorio, pero
hay que considerar que el formato estndar de Access, que sera el de extensin
.accdb, no los permite. En cualquier caso estos campos, del tipo que sean, no son
modificables por el usuario.

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.

Objeto OLE. Explicar este tipo de objetos y su funcionamiento sobrepasa lo que


debemos conocer de una base de datos. Entiendo que basta con decir que en ste
tipo de campos se puede guardar objetos ajenos a Access, como una pgina de
Excel, de Word, una imagen, etc.

Hipervnculo. Como su nombre indica, son campos que se almacenan como de


tipo Texto pero que se utilizan como enlace a otras pginas.

Datos adjuntos. Se utiliza para el almacenamiento de archivos binarios.

Asistente para bsquedas. No es en realidad un tipo de datos, por mucho que


aparezcan como tal. Se podr ver mejor cuando hablemos de funciones de
bsqueda.

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

Autor: Jos Luis Freire

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.

Formato. Se puede elegir un diseo para la presentacin en campos de distinto


tipo. Es as en los de fecha, nmero, moneda, etc.
Las mscaras de entrada se utilizan con campos de texto y de fecha. Contienen
un asistente para la creacin de ellas y estn pensadas para facilitar la entrada
de datos.
Los ttulos se utilizarn cuando se vean Formularios.
Valor predeterminado. Es una opcin que pienso est infravalorada habida
cuenta que dado el carcter de base de datos personal que tiene Access es una
herramienta vlida para ser utilizada por terceras personas y no tanto por quien
realiza el desarrollo de la base de datos. Actuacin completamente vlida por
otra parte, pero entiendo que no muy extendida. Con todo tiene una poderosa
herramienta de manejo que se denomina Generador de expresiones y las
posibilidades son muchsimas, tanto a travs de las funciones prediseadas
13

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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.

A pesar de lo dicho, puede ser utilizado simplemente para incorporar un valor


dependiendo del campo de que se trate. Si mayoritariamente acepta un dato concreto se
puede incluir como predeterminado y slo modificarle si es necesario.

La Regla de Validacin evala lo introducido en un campo segn unas


condiciones que establecemos a priori, al igual que con los campos
predeterminados y con un asistente de la misma forma, la nica diferencia es
que en lugar de introducir un valor comprueban el valor introducido.
El texto de validacin es tan slo para que salte el aviso que nosotros
indiquemos en ese apartado cuando una regla de validacin no se cumpla.
Sabemos lo que es Requerido, o de introduccin forzosa de datos, sin ellos no
permite continuar con los siguientes campos.
Si se permite la longitud cero tiene bastante parecido con la anterior opcin, en
definitiva slo indica que se admita o no un campo en blanco.
Sobre los indexados los veremos en su momento. En este caso sirve para indicar
si se utiliza de sta forma y cmo se utiliza.

Creo que no hay ms realmente de inters, como curiosidad la compresin Unicode se


realiza en textos que superan una longitud y los modos IME se refieren a versiones
asiticas.
S las habra, al menos tres, exclusivamente en campos de tipo numrico, en concreto.

Los lugares decimales indican el nmero de posiciones utilizadas despus de la


coma.
Cuando se trata de fechas, activar el Selector implica que al pulsar en un campo
14

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

de ste tipo, aparezca en la zona derecha un calendario desde donde poder


seleccionar.
Los nuevos valores se refieren a los Auto Numricos, por defecto auto
incrementales, pero se pueden definir como aleatorios, con las restricciones que
ya se han dicho.

Lo especificado debe tenerse en cuenta dependiendo de los tipos de campos de que se


trate y cmo se quiere que se comporten.

Asistente para bsquedas.


Se da el caso frecuente que distintos datos no conviene teclearlos, pues las posibilidades
de error son frecuentes y puede impedir que la base de datos no funcione de manera
correcta, un ejemplo tpico seran los nombres de provincias, que podemos incluir en
una tabla y referirnos a ella, pero como esto son muchos los casos.
En nuestro ejemplo el campo Especialidad de la tabla de Profesores tendr que tener una
correlacin con el campo Nombre-Curso de la tabla
Cursos, dado que por el diseo y por nuestro inters tienen
una relacin, si se realiza un curso es porque existe o
existir profesor en esa rea, y se contratar un profesor
teniendo en cuenta los cursos que se quieran impartir.
Por lo tanto pensaremos en una planificacin de cursos
para un periodo acadmico, datos que introducir en la

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

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

A continuacin nos ofrece cuatro opciones de ordenacin de lo seleccionado. Nosotros


tan slo hemos elegido un campo y nos parece bien el orden Ascendente en su
visualizacin, en caso contrario pulsaramos el botn que se ve en la imagen y
cambiara a Descendente.
Hay que considerar que an sin haberlo seleccionado, el campo clave siempre aparece,
lo lleva implcito cualquier operacin de este tipo, pero no nos interesa para nada en esta
ocasin, sera conveniente cuando avancemos ms, no en este instante. Por lo tanto
tenemos que lo puede verse a continuacin.

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

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

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.

Y cuando decidamos empezar a introducir alumnos, al llegar


a la CCAA se tendr la opcin de abrir el desplegable y
seleccionar.
Lo que se
puede ver en
la imagen.
Vaya!
Pensbamos
que no haba
gallegos en
los cursos y
resulta que
s,
mejor
que no se
enteren por
21

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

lo que vamos a introducirlos. Se ve en la figura de la izquierda una especie de icono en


la sombra? Justo debajo y a la izquierda del recuadro de las Comunidades. Pues vamos
a realizar un clic justo en l y lo que nos aparece es una lista donde insertar los valores
que nos interesen, en la que se poda haber empezado a incluir todas ellas o como en
este caso insertar alguna o modificar otra, lo que sea.
ndices
Cuando se trabaja en cualquier base de datos relacional con una sola tabla, algo muy
atpico pero factible, el hablar de campos ndice pierde sentido, a veces resultan ms una
molestia que una ventaja. Pero las relaciones entre tablas carecen de sentido sin ellos, se
podran establecer relaciones aunque cuando se llegase a un cierto volumen de datos
resultasen de dudoso manejo en muchos sentidos, y no slo en la lentitud de
operaciones, en general hay ms factores que influyen, aunque en Access no tengan la
misma trascendencia.
Pero lo dicho, slo si hay varias tablas, porque la nica razn visible para utilizarlos con
una sola podra ser la ordenacin a travs del mismo, caracterstica tpica de ellos, pero
se pueden ordenar de otras maneras y de sta lo que conduciran es a mayor espacio del
fichero, supuestamente una mayor lentitud, pues los ndices deben actualizarse en
cualquier proceso, etc. No conviene.
Siempre que exista una relacin entre varias tablas lo aconsejable es que se realice a
travs de ndices, que no quiere decir que sea el principal, puede ser uno secundario,
pues hay de distintos tipos.
Puede resultar curioso que Access denomine a sus campos de ndice primario con el
nombre Id (identificador), no lo es tanto. Vemoslo.
Si tenemos una tabla de Alumnos y otra de
Profesores, una prctica usual y aconsejable es
utilizar
sus
DNI
o
identificacin
correspondiente. Bien, utilizar la tabla
Profesores para agregar sus nmeros de
documento. Para ello slo la abro, y en ste caso
voy a crear un ltimo campo llamado IdDNI.
Sin ms, no har ninguna otra cosa en ste
momento, pero voy a ver las Propiedades del
campo, que seran las de la figura.
Si nos fijamos quin le ha dicho a ste que sea
Indexado? Pues realmente hemos sido nosotros
por poner el prefijo Id delante. En resumen,
Access considera campos claves a todos los que
en el momento de la creacin de los mismos tengan el prefijo Id, Nm, Clave o
Cdigo.
Cmo los ha creado? Lgicamente no campo ndice principal porque la tabla ya tiene
uno y no es posible que haya ms, pero s lo es que existan secundarios, como sabes, y
eso ha hecho. Es ms, ha generado el ndice ms abierto y, a mi humilde entender, el
22

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

As hacemos desaparecer los que hay, y a continuacin generamos la clave


primaria con el campo DNI. El icono correspondiente nos lo facilita, tanto
para crear como para eliminar los ya creados.
Cada cual tiene sus manas y quien redacta esto ubica siempre la clave
primaria en el primer lugar de la tabla, el primer campo que se visualiza, lo que es muy
simple pues con el botn secundario se puede Insertar, Copiar, Pegar y Eliminar en la
tabla en modo diseo, por lo que no hay problemas en el caso de que el campo ya tenga
registros. As pues, lo ubico y con la llave lo convierto en clave primaria. En este caso
conviene especialmente fijar unas medidas de campo fijas y que sean iguales para todos
los registros.
Cuando se genera un campo clave, como cualquier clave o ndice, tiene un nombre que
es independiente del nombre del campo, en ste caso se denomina por defecto
PrimaryKey (clave primaria),
podemos admitirlo o cambiarlo, es
indiferente.
El resultado de nuestra tabla
Profesores quedara de la siguiente
forma.
Haremos lo mismo con la tabla de
Alumnos, por lo que no vale la
pena repetir los pasos.
Pero s sera interesante comentar
algo. Si se han establecido relaciones previas, como hicimos hace poco entre las tablas
de Profesores y Cursos, por mucho que en la Vista de Diseo no aparezca, si entramos
en Relaciones veremos que contina un campo ID. Habr primero que romper la
relacin.

24

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

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.

Dgito o espacio, no obligatorio

Dgito o espacio, no obligatorio; en edicin los espacios se


visualizan como blancos pero no se guardan y se permite signos ms
y menos.

Una letra de A a Z, obligatoria.

?oA

Una Letra de A a Z, no obligatoria.

Cualquier dgito, no obligatorio.

&

Cualquier carcter o espacio, obligatorio.

Cualquier carcter o espacio, no obligatorio.

. (Punto)

Marcador decimal.

, (Coma)

Separador de millar.

: (Dos puntos)

Separador en horas.

;-/

Separadores en fechas.

Se encierran entre comillas partes literales o concretamente blancos.

<

Convierte todo a minsculas.

>

Convierte todo a maysculas.

Contrasea

Palabra clave para que los caracteres se sustituyan por asteriscos.

Invierte el sentido de la entrada, de derecha a izquierda.

Lo que se escriba a continuacin se incluye en el campo.

Si en un campo de tipo texto o fecha pulsamos en Mscara de Entrada en las


Propiedades del Campo, nos aparecer una ventana como la siguiente.

27

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

Lo que se puede ver en la imagen superior


continuar estando si se guarda la tabla. Se
eliminar desde la pestaa de Diseo pulsando
Borrar Diseo.

Creamos las relaciones.


Vamos a ir paso a paso y desde la misma ventana que hemos visto estudiando cada
relacin, pues ser la esencia de un funcionamiento ptimo de la base de datos.
Posteriormente analizaremos las relaciones.
En el caso de Access, posteriormente habr que relacionar no solamente las tablas, sino
incorporar lo que se denomina como Consultas, pero es un paso que no afecta en
principio a la estructura.
As vamos a empezar como si fuese el primer curso a efectuar, como si se crease la
empresa y hubiese que empezar a decidir. Por lo tanto debemos pensar qu cursos se
van a impartir, sabiendo que ser en principio de informtica. Para ello precisamos la
tabla Materias. Y en el momento en que lo sepamos tendremos que ver cmo se
estructuran, en qu fechas, duracin, etc. As que nos interesa la relacin con Cursos.
Vamos a efectuarla. En la misma pgina donde hemos visualizada las tablas en una
imagen superior, pinchamos con el botn principal en el campo clave y arrastramos
hasta el tambin campo clave de la segunda tabla. Al soltar el ratn nos aparecer una
ventana como la que se puede apreciar.

30

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

efectuemos. Por ello no es de extraar que haya un campo clave en la tabla de


Profesores en el que no se ha establecido ninguna relacin. No se puede abusar de
ndices pero tampoco prescindir.
Modificar relaciones.
Una vez que tenemos creadas las relaciones, si abrimos la hoja correspondiente
Relaciones de la pestaa Herramientas de Datos, que ya hemos utilizado, podemos
apreciar que con un doble clic en cualquier parte se abre una ventana en blanco con el
ttulo Modificar relaciones como aparece en la imagen.

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

Autor: Jos Luis Freire

Seleccionamos una de ellas, por ejemplo


Materias, y nos ofrecer la Tabla o
consulta
relacionada con la
que
tenga
establecidos
vnculos, que son tres, las que aparecen en la imagen tras abrir
el desplegable bajo ese nombre, como se puede apreciar en la
imagen.
Si se acepta sin ms, lo que tendremos es el campo por el cual
ya est relacionada. Pero pueden visualizarse todos los
restantes y crear una nueva relacin.
Podemos generar una nueva, aunque sea completamente errnea, para ver el
funcionamiento. He utilizado el campo Fecha-inicio, y por supuesto en la imagen de
relaciones as aparecer, con un
trazo ms grueso para que resalte
que se acaba de crear. La
relacin carece de cualquier
lgica, pero podramos imaginar
que tiene sentido. Como no lo
tiene y slo la utilizamos de ejemplo, podemos eliminarla desde el trazado.
Hemos mostrado la pantalla de modificaciones a travs de un doble clic, con lo que
obtenemos la imagen que vimos sin datos. Si interesa modificar una relacin en
concreto sera realizar el mismo proceso sobre el enlace de que se trata y aparecer en
la ventana.
Realizamos este proceso, por ejemplo, con la relacin entre Materias, campo IdCodigo
y Cursos, campo IdCursos. Obtendremos lo que se ve en la figura.

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

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

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.

Puestos a inventar sera algo as:


Almacn general El Ladrillo Rojo
c/ Los socavones s/n
28999 Madrid
Para:
Contrucciones Big Bang
c/El Comienzo 1559
28853 Aranjuez Con Amor -Madrid
N Albarn: 15978

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

Autor: Jos Luis Freire

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:

Repites el nmero de albarn, luego ya ests duplicando datos.


No veo por qu dividirlos cuando en una sola tabla tienes todo, ms organizado.

Respuestas:

El principio de no redundancia afecta a los datos que no sean claves o ndices


o como quieras llamarlos. Los ndices existen para que estn repetidos porque
una base de datos relacional sabe manejarlos a la perfeccin.
No est ms organizado, muy al contrario. Ves las tripas de la base de datos,
algo que no ver un usuario, para l no existir esa diferencia.

Adems:
38

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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.

A nivel de existencias no importa el proveedor que suministre y, en esta fase, no


se precisa considerar precios de compra y de venta.
39

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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

Ya hemos repetido varias veces a qu se dedica la empresa, luego si compramos


tendremos una tabla de proveedores y si vendemos la tendremos de clientes, as
tenemos dos ms

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

Autor: Jos Luis Freire

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.

Cerramos la fase de creacin de tablas.


Me pregunto se trata de una empresa nueva? No, est funcionando, luego en el
momento en que comience a llevarse el control por la base de datos que he de crear
existirn unos productos con unas cantidades en stock. Qu puedo hacer? Pues primero
que introduzcan todos sus productos. As veremos qu preciso, es decir, qu campos
tendr la tabla Productos.
Estructura de la tabla Productos.

IdProducto // Identificador del producto


Descripcin // De qu se trata (yeso, ladrillos, etc,)
Unidad de medida // Y esto? Ahora lo vemos.

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

Autor: Jos Luis Freire

Yeso blanco: 1.000


Baldosas: 50
Tubera PVC: 150
Codos PVC: 55
Tiene sentido? Seguramente poco pero vara si incluimos cmo se mide cada producto,
es decir, algo de sta forma
Yeso blanco 1.000 kg
Baldosas: 50 m2
Tubera PVC: 150 m/l (metros lineales)
Codos PVC: 55 unidades.
Esto s tiene sentido.
De acuerdo, en principio es lo bsico de esa tabla, pero tienen que introducir el stock
inicial, luego se calcular por entradas y salidas, pero no la primera vez, hay que
preverlo y tener un registro de existencias por cada uno de Productos, ya sabemos que
ms tarde nos encontraremos con una relacin uno a uno. Por ahora creemos los
campos.
Estructura de la tabla Existencias.

IdProducto // que ser el mismo que el de la tabla Productos.


Stock // la cantidad de producto que hay en el momento inicial y el que resulte
posteriormente.
Stock mnimo // por
qu? No nos han dicho nada, pero cabe
suponer que querrn establecer un sistema que les advierta cuando de un
producto queda una cantidad insuficiente.

Bsicamente no hay necesidad de ninguna otra cosa.


Por lo tanto empecemos con las siguientes tablas. Tendremos unos proveedores, vamos
a incluirlos.
Estructura de la tabla Proveedores.

IdCIF // Nos sirve perfectamente habida cuenta que no hay repeticin, y es la


mejor manera de describir a una empresa
Denominacin // Cmo se llama el proveedor
Direccin
Localidad
Provincia
CP
// Cdigo Postal
Telfono
Mvil
Correo-e
Contacto //Nombre de la persona con la que solemos tratar.

42

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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

IdCompra // Documento de compra, sera albarn, factura o lo que sea.


IdProveedor // Necesitamos relacionarlo con quien nos vende.
Fecha // Nos conviene saber cundo se compra por si se precisa estudiar un
periodo.

Algo ms? No parece, ahora tenemos que saber lo que se compra y relacionarlo con
stock ms tarde, veamos.

IdCompra //Documento de compra


IdProducto // El producto que se compra
Cantidad

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

Autor: Jos Luis Freire

Muy bien, y si es al revs? Es decir, en lo que ustedes venden - De la misma forma, no


se realizan albaranes adicionales de devolucin, nos es ms fcil un asiento anulando la
venta y sobre el mismo albarn, as podemos consultar lo que hemos comprado o
vendido sin necesidad de estar con documentos al margen de la operacin Perfectamente, slo una duda ms. Supongamos que les devuelven una mercanca
porque est deteriorada. Entiendo que el deterioro puede ser imputable a quien se la ha
suministrado a ustedes Tiene esto un reflejo automtico? Es decir, la devolucin de la
venta implica de forma inmediata una devolucin en la compra? - Inmediatamente no.
Por ejemplo, cuando se utilizaba cal viva, que como es lgico haba poco movimiento,
puede ser que tuvisemos almacenados X meses los sacos, y en ese periodo, por la
humedad o lo que sea, la cal muriese. La devolucin de lo que vendemos no puede
repercutir directamente en quien le compramos el producto, los proveedores siempre
son muy reticentes y para ellos nunca tienen la culpa, ya me entiende. - Si, muy bien.
Pero al filo de esto se me ocurren dos cosas ms. El vendedor de ustedes que ha
efectuado esa operacin supongo que sera el responsable quieren saber quin efecta
la transaccin? - No, no nos interesa. Al menos no en este momento, no tenemos 100
empleados. En un futuro ya veremos, ahora no. - De acuerdo, pues un ltimo tema. Si
les devuelven un producto, tal y como dice, entrar de nuevo en el almacn, en principio
eso derivar en un incremento del stock pero si el producto est deteriorado sera falso,
entiendo que no se puede considerar porque en realidad no es vendible. - Le entiendo,
Digenes. Pues la verdad es que mira ms lejos que yo. Como ahora lo anotamos a
mano no tenemos ese problema, si se devuelve, por ejemplo, porque lo hemos remitido
equivocado, entra en almacn, pero si es por deterioro no. Se me ocurre que nos tena
que dejar abierta la posibilidad de hacerlo as. - Veamos qu le parece. Puedo dejar que
la entrada siempre afecte al almacn pero que ustedes tengan la posibilidad de retirarla?
- Pues quizs s, ser lo mejor- Muy bien, pues as lo hacemos. Gracias Bien. A nivel de devoluciones es muy simple, slo dejar abierta la posibilidad de
nmeros negativos en las tablas de lneas. En stock luego lo pienso.
Ahora me interesan las Ventas y Lneas de Venta.
Bueno, puesto que se descartan los precios en un principio y por lo tanto los posibles
descuentos (que podran darse igual en compras y por ello no lo he considerado) no hay
diferencia con relacin a las compras. Sera la misma estructura.

IdVenta // Documento de venta.


IdCliente // Relacin con quien vendemos.
Fecha

Algo ms? No parece, ahora tenemos que saber lo que se compra y relacionarlo con
stock ms tarde, veamos.

IdVenta //Documento de venta


IdProducto // El producto que se vende
Cantidad // sabemos que pueden ser lneas en negativo

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

Autor: Jos Luis Freire

incremento-minoracin en la misma tabla o 2) Crear una tabla paralela con


devoluciones.
El primero sera ms fcil pero podra haber un problema y sera la prdida de
coherencia por qu y de donde viene una subida o disminucin del stock? Es mucho
ms lgico utilizar una tabla de Devoluciones, que tendra una estructura de este tipo:
Devoluciones.

IdDocumento // Tanto de compra como de venta


IdProducto // el que devolvemos o se nos devuelve
Devolucin Compra // La cantidad que devolvemos si se trata de eso
Devolucin Venta // La cantidad que se nos devuelve si es una venta

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.

Es la tabla de Productos, vamos a Existencias.

Y ahora con Proveedores

45

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

La tabla de Clientes es idntica. No voy a perder el tiempo crendola. Cierro la tabla


Proveedores y pincho con el botn secundario sobre ella accediendo a Copiar. Indico
nuevamente "Pegar" con lo que aparece la pantalla que se puede ver, cambio el nombre
por el correspondiente de Clientes. Ya est.

Vamos pues a la Compras y las Lneas de Compra.

De la misma forma Ventas y Lneas de Venta.


46

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

Y por ltimo me queda Devoluciones.

En principio tengo las tablas como deseo.


Anotaciones sobre ndices o campos clave y tablas.
Nota marginal : Unas observaciones sobre la creacin de ndices dado que se han venido
efectuando errores, no en este caso presente, sino en algunos de los recibidos.

La utilizacin de campos clave auto incrementales puede ser vlida en


determinados casos, y hay muchos analistas que los mantienen por distintos
motivos que ahora no nos incumben. Por supuesto que de ser til ese sistema de
entrada, por ejemplo, por utilizar relaciones en tablas en las que no resulta
coherente que puedan existir campos clave lgicos, como un CIF, un cdigo de
un producto, etc. son absolutamente viables, pero no en otros casos. Cierto que
aqu, como en muchos temas, cada analista tiene su opinin y el proceso de
anlisis conlleva una parte de subjetividad siempre que se cumplan con unas
reglas mnimas.

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.

No es positivo ni crear ndices en demasa ni quedarse cortos. Todas las tablas


que puedan tener campos con relacin a otras deben de tener los ndices, siempre
con la misma estructura de campos en todas ellas.

47

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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.

En ningn caso se deben de crear ndices en campos que no sean lgicamente


claves. Carece de sentido un ndice en un campo "cantidad", "precio", etc. No
son significativos y sera errneo, a esos datos se llega por las relaciones de los
que s son lgicos, para ello, entre otras cosas, se crean.

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

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

Por lo tanto nos basaremos en un solo


sistema que es el relacionado con el
Diseo de consulta, por ser la forma
ms amplia si descartamos SQL. Se
accede desde la pestaa Crear como
aparece en la imagen.
Cuando utilizamos la opcin se nos
muestra una ventana con todas las
tablas, y consultas si las hubiese, por lo
que seleccionamos lo que nos interesa.
Vamos a generar tan slo una tabla
como inicio. Para ello utilizaremos la
estructura que se explic como ejemplo,
partiendo de un comercio de materiales
de construccin.
Lo que podemos visualizar
es lo que aparece en la
figura.

Realmente para el uso de


una nica tabla no se precisa
ninguna herramienta. Al
igual que ocurre cuando se
generan relaciones, si se
pincha sobre la que nos
interesa y se arrastra con el
botn primario hasta el
espacio de la consulta que podemos ver en la parte inferior.

50

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

En ella se distinguen, en lo que se


denomina zona o cuadrcula QBE, unas
posibles opciones. Hagamos un recorrido
considerando que cada columna se
corresponde con un campo, y en cada fila
aparece una leyenda en la parte derecha.
Estas son las siguientes:

Campo. Es el nombre que se quiere


utilizar. Puede ser el mismo de la
tabla, pero puede ser otro que
denominaremos expresin. El
significado de ste segundo es que
no tiene por qu limitarse a lo que
pueda aparecer como campo fsico
sino que hay que considerar
tambin campos calculados, es
decir, el resultado de operaciones sobre campos concretos de una tabla o de otra
consulta.

Tabla. Parece que el contenido es obvio, indica a la que se est refiriendo el


campo en cuestin habida cuenta de que se pueden compaginar distintos de
distintas tablas.

Orden. En el que se quiere que aparezcan los datos.

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.

O. A partir de sta fila se pueden combinar distintas condiciones.

Al principio de la tabla que se incluye en la consulta aparece un asterisco. Este de


alguna manera la identifica en la totalidad de sus campos. Si hacemos un doble clic con
el botn principal sobre el mismo, aparecer como nombre de campo el de la tabla
seguido por un .* como si de un comodn se tratase. En ste caso damos por supuesto
51

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

Si con este ejemplo


ejecutamos
la
Consulta, a travs de
la pestaa Diseo y
opcin
Ejecutar
obtendramos los campos requeridos
tanto a nivel de tabla como a nivel de
consulta, es decir, algo como lo que se
puede observar.
Antes de utilizar operadores mltiples cabe destacar algo importante. Cuando se trata de
un valor literal, como puede ser la definicin de un producto, nombre de cliente,
provincia, etc. ir siempre entre comillas, o sin ellas si es un numrico, en cualquier
caso se identificara con constantes, no con variables. Pero si lo que precisamos es,
utilizando ms de una tabla, comprobar el contenido de dos campos, sea cual sea su
valor, el nombre del campo deber ir encerrado entre corchetes [] pues en caso contrario
lo considerar una constante que definimos en ese momento.
Adems de la tabla de Productos introduciremos la de Existencias. Adems crearemos
una relacin entre ambas con dos condiciones, se utilizara el operador Y (AND), pero
siendo tablas distintas lo que haremos es indicar la condicin en ambas, por lo que el
operador no es necesario, de tal forma que nos muestre cualquier producto que no sea
Yeso blanco Y que el stock mnimo sea superior a 100. Sera lo que vemos

en la primera imagen. Y si a continuacin pulsamos la opcin de Ejecutar obtendramos


el siguiente resultado.

53

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

Introduciremos dos elementos visuales en forma de seales de trfico. Van precedidos


por las disculpas al utilizar unas llamadas de atencin un tanto infantiles, pero es
importante detenerse y retroceder. Lo es saber manejar un software cualquiera, pero
mucho ms comprender la filosofa de trabajo, lo que no ha sido fcil ni creo que se
haya conseguido en los principios de este tema que nos ocupa: Access.
Saber manejar una herramienta est al alcance de cualquiera, comprenderla hasta el
punto en que no importan los cambios, que de igual si se trata de una versin u otra, y
ms lejos an, pues este tema obliga a ello si se quiere comprender en profundidad, que
se pueda extrapolar a cualquier otro software del mismo tipo, es lo deseable. Una base
de datos lo es desde Access a Oracle o DB2, pasando por la de MS, SQL Server, o
cualquier otra. Obviamente si se intenta implementar una filosofa que va desde algo
ms pequeo a otro mucho ms grande nos encontramos con problemas, pero tras el
teln la base es la misma y, o bien se conoce y se le puede sacar todo el partido, o no se
consigue y obtendremos un montn de piezas de un puzle que no encajan.
Vamos a detenernos en este punto. Lo que parece tan sencillo realmente lo es?
Somos capaces de ver por qu unos campos concretos de dos tablas funcionan
como si de una sola se tratase?
Los registros de una tabla no tienen por qu estar ordenados y enlazarse con la
misma ordenacin de la otra/s tabla/s, en absoluto, ese detalle no tiene mayor
importancia. Se produce una relacin natural porque los campos ndices de las
dos tablas la generan. Como es lgico no porque Access se lo invente sino
porque nosotros hemos creado previamente la relacin. Se refleja en la parte superior de
la primera figura, la relacin de uno a uno que aparece se debe a que la hemos
establecido, y sabe cmo tratarla porque adems hemos indicado que esa relacin est
sujeta a una integridad referencial especfica, aunque para la visualizacin de los
registros esto ltimo no implique nada.
Vamos a contemplar una imagen con los registros de ambas tablas.

Como se puede apreciar la tabla de Productos tiene un registro que no aparece en la


Consulta por qu? Es simple, porque no est su semejante en la de Existencias.
Podramos pensar que lo lgico sera que faltasen los datos que no guardan relacin, es
decir, que lo que hemos definido con el cdigo 50003 en la primera de ellas no tuviese
valores de stock. Sera esto posible? Vamos a eliminar todas las condiciones que
hemos establecido e introducimos el campo Cdigo para que se vea con claridad, es
decir, para que tericamente aparezcan todos los registros. El resultado sera el
siguiente.

54

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

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:

SELECCIONAR de tabla Productos el campo Descripcin, de la tabla Existencias el


campo Stock, de la tabla Existencias el campo Stock_minimo PARA la tabla Productos
ENLAZADA CON Existencias A TRAVS DE LOS CAMPOS IdProducto de la Tabla
Productos = IdProducto de la tabla Existencias PARA AQUELLOS CAMPOS QUE
CUMPLAN LA CONDICIN Descripcin de la Tabla Productos sea distinto de Yeso
blanco Y Stock_minimo de la tabla Existencias > 50 ORDENANDO TODO ELLO
SEGN el campo Descripcin de la Tabla Productos.
Tal vez suene un poco confuso pero no lo es tanto, de hecho SQL es un lenguaje fcil
pues slo se dirige a un objetivo que es la manipulacin de datos de una base. El
problema ms comn es que a pesar de que existen estndares del lenguaje, cada
empresa generadora de bases de datos establece sus propias caractersticas, dentro de
una lnea prefijada pero suficiente para liarnos lo suficiente a los pobres incautos.
Como se puede apreciar la primera orden de todo este tipo de consultas es SELECT
Seleccionar, por lo que su nica funcin es visualizar el contenido de la seleccin que
se establece.
En la sentencia ORDER BY tan slo aparece un campo, pero no tiene por qu ser as,
ocurre que es el nico seleccionado a estos efectos, pero puede ser un nmero cualquier
considerando que se ordenador por el primero, segn ese orden lo harn por el segundo,
etc.
Otros operadores.
Hay muchas opciones para crear condicionantes aunque nos hemos referido al Y y al O
por ser los ms comunes, pero tambin lo es, y de mucha importancia el Entre.
Principalmente se utiliza en los intervalos de tipo Fecha, pues es muy normal querer
saber las ventas que se han producido en un mes determinado, por ejemplo. Como es
56

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

obvio el campo al que se alude tiene que aparecer en el esquema de consulta y


seleccionarlo para que descienda a la zona QBE.
Aunque se trate de una consulta un tanto absurda, es de suponer que se entiende la
filosofa. Utilizaremos slo el fichero Compras de la manera en que podemos apreciar
en la imagen.

Quien piense que para hacer eso es suficiente con utilizar


la opcin asterisco (*) habra que decir que tiene razn,
pero no nos sirve para nuestros fines de crear condiciones.
El resultado es muy simple, obtendremos todos los datos
de la Tabla Compras, que por s misma dice muy poco,
pero nos sirve. Sera de la siguiente
manera considerando la ordenacin
ascendente del campo Fecha.

Pero podemos querer tan solo lo que se


refiera a ste ltimo mes, y para ello nos
servira
con
el
condicional
mayor
que, >. Sera con la condicin >#31/03/2011# como aparece en la
imagen.

La utilizacin del carcter que precede y sucede a la fecha es obligatoria, pero si no la


ponemos nosotros lo har Access, por lo que no es necesaria utilizando el Asistente. Y
el resultado es el que cabe esperar.

57

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

Ms usual, salvo que se quiera


visualizar los ltimos movimientos, ser
otro operador, concretamente Entre. En
l se especifica el origen y el final. Por
ejemplo, si queremos ver las compras
que se han producido en el mes de marzo pondramos:
Entre #01/03/2011# Y #31/03/2011#
Hay que prestar atencin a un detalle. La utilizacin de Y (AND) normal puede
conllevar ms de una fila y se ejecuta perfectamente, pero no ocurre lo mismo si
encuentra una sentencia Entre, en caso de seguir en la lnea siguiente entendera que se
ha truncado por lo que la respuesta es un mensaje de error.
Se podra pensar en otro operador para obtener el mismo resultado, que sera In. Lo
que hace ste es pasar una lista de valores que deben de estar dentro del campo, pero
utilizarlo con fechas devolvera un error, pues si se indica, incorrectamente, In (#03#),
nos dir que no se puede utilizar en campo de tipo fecha, y en caso de no utilizar los
signos # devolvera una consulta vaca. El tema es que In funciona con alfanumricos.
Por ejemplo, podramos buscar los proveedores de distintas provincias indicando
In(Alicante, Madrid, Toledo) lo que s sera correcto y equivalente a utilizar tres
lneas con el signo = y unidas por un OR u O.
Parmetros.
En cualquiera de los casos mencionados lo que estamos pidiendo son valores
constantes, pero la realidad es que cuando se consulta no se conoce qu es lo que se
quiere consultar. O en otras palabras, quien realiza el diseo de la base de datos y sus
consultas no puede predecir si entrar una fecha u otra, una provincia u otra, etc. Para
esto sirven las consultas con parmetros donde se solicita el valor que es objeto de la
bsqueda.
La forma de escribirlo es similar al caso en que se quieran consultar considerando el
contenido de otros campos, y el funcionamiento muy parecido, salvo que en un caso es
una variable que se encuentra en una tabla y en ste es un valor que Access va a pedir
en el momento de la ejecucin. Por ejemplo, realizamos una consulta sobre la tabla
Proveedores, y para ello debemos generar un nombre de variable distinto al nombre de
campo. Si queremos seleccionar una provincia, indicaramos algo del tipo de la imagen.

En la ejecucin aparecer la siguiente pantalla, donde se pude ver el nombre de la


variable que hemos introducido. Tras teclearlo filtrar exclusivamente lo que hemos
indicado, si existe filtrar la tabla considerando ese parmetro y mostrando
exclusivamente los registros que cumplan la condicin.

58

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

Hay otra forma de generar parmetros


que se encuentra en la pestaa Diseo
Herramientas de consultas, como aparece
en
la
figura.

Veremos que al pinchar en Parmetros se abre una


ventana donde poder definirlos. Es un asistente como
cualquier otro pero tiene una ventaja, y es que nos pide el tipo de dato que vamos a
introducir. Lgicamente ser del mismo tipo del que exista en la tabla, por lo que
activamos un filtro de datos o en otras palabras, forzamos la introduccin de datos
iguales al campo que debe contenerlos, si se trata de texto el parmetro seleccionado lo
ser, como si es de cualquier otra forma.

Sobre consultas con varias tablas.


Cuando estamos efectuando Consultas con ms de una tabla, que es el caso nuestro
desde el comienzo, resulta muy probable que al abrir en Herramientas de base de datos
las Relaciones, nos aparezcan tablas que no hemos generado, y que tienen el mismo
nombre de las originales ms un nmero correlativo. stas son, llamemos, tablas
virtuales que utilizan las Consultas y que por supuesto no aparecen en la zona izquierda
donde se encuentras las tablas reales.

59

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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.

Dependiendo si optamos por la opcin 2 o la opcin 3, generamos unos vnculos


externos que modificaran la relacin. En el primer caso se puede ver cmo la flecha de
enlace apunta hacia la tabla afectada, al igual que el segundo aunque sera de forma
inversa.

60

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

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.

A continuacin nos muestra los campos y su contenido, preguntando si debe importarlos


y cules son campos clave. En ste caso nos interesa el nmero de empleado habida
cuenta de que no se repite y es un campo identificativo.

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

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

Para los cometidos que nos interesan se utiliza el


sumatorio que se encuentra en la pestaa de Diseo,
como herramienta de consulta.
Veamos. Consiste tan slo en realizar el Diseo de
Consulta y agregar la tabla que
nos interesa.
Una vez efectuado y cerrada la
ventana pulsamos sobre la
opcin psilon o Sumatorio,
pero seleccionando el campo
que queremos incluir. Y esto es
importante, se va a efectuar un
resumen de aquellos que tengan
valores comunes, por lo tanto no
es posible introducir un ndice
sin repeticin o clave principal,
como no tiene sentido visualizar
campos que no estn implicados
en el resumen. Si lo hacemos
Access nos dar una advertencia
o mensaje de error, salvo que s
exista una implicacin, por
ejemplo de contar el nmero de
registros, pero no si carece de un valor que se genera con el sumatorio y que es un
campo de consulta denominado Total.
En ste caso queremos que nos muestre el nmero de empleados, que agrupe por el
campo Grupo y que totalice el campo Importe Sueldo. Veamos en la siguiente imagen
cmo se establece.
64

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

Es importante el campo que


se genera y que hemos
mencionado, es la esencia
de ste tipo de Consultas.
Por ello aparece subrayado
en rojo en la imagen. En
este
caso
estamos
utilizando una sola tabla, se
podra hacer con varias, no
hay variaciones en la
utilizacin en ese aspecto.
Tampoco
estamos
utilizando
condicionales
por simplificar.
As en la primera columna,
que es el nmero de
empleado y campo ndice,
hemos utilizado la opcin de Contar. En la segunda, indicamos tan slo que los
agrupe. Y en la tercera que realice la suma, es decir, que totalice segn la agrupacin
que haga. El resultado, en vista parcial,sera ste.

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

Autor: Jos Luis Freire

A muchos efectos no hay diferencia entre la utilizacin de tablas o de consultas, el


mecanismo, una vez generada sta, es muy similar.
Vamos a abundar en esa similitud. Denominar a la consulta que hemos efectuado como
Consulta suma por grupo y voy a aadir ms campos, en concreto Hijos, Importe
Trienios e Importe por hijos. Por lo que la zona QBE quedara de sta forma una vez
consideradas las modificaciones de Total.

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

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

Consultas con referencias cruzadas.


Vamos a utilizar las tablas de nuestra base de datos de materiales de construccin. Y lo
que buscamos es conocer, por cada cliente, cules y qu cantidad ha adquirido en total.
Para ello se precisa lo que se denomina referencias cruzadas.
Pero corrijamos antes un error. Cuando vimos la estructura de las tablas y sus
relaciones, definimos una relacin 1 a 1 entre Ventas y su detalle las Lneas de Venta.
Es un claro error, porque de ser as tan slo podra adquirir un producto, pues siendo
ms de uno la clave estara duplicada, se precisa de una relacin 1 a varios.
Aprovechemos esta correccin y que nos sirva de algo.
Para conseguir esa relacin es preciso que se efecte por el campo clave o ndice
principal. Y para deshacerla es necesario eliminar todas las relaciones que afecten a la
tabla en cuestin. Es un tanto arcaico? Bueno, hay libertad de pensamiento, pero
Access funciona de sta forma y tiene relativamente razn. Por lo tanto eliminemos todo
lo que apunta a Lneas de Venta y despus basta posicionarnos en el campo de clave
principal, en modo diseo, y pulsar el icono correspondiente, como se ve en la imagen,
aunque corresponda a otra tabla por no volver a corregir la misma, da igual cul sea
pues el procedimiento siempre es el mismo.

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

Autor: Jos Luis Freire

Bien, pues sobre esta consulta vamos a


generar otra que nos permite realizar lo
que queremos. Sigamos el proceso paso a
paso.
Realizaremos una consulta pero en esta
ocasin con el Asistente y no el Diseo,
que como sabemos se encuentra en la
pestaa Crear.
Una vez que pulsemos sobre l se abre la
ventana de la figura derecha y
seleccionamos el Asistente de Consultas
de Tablas con Referencias Cruzadas.

69

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

Veamos. En la figura 1 hemos fijado las columnas de Denominacin y Descripcin, que


son las que aparecen en primer lugar, es decir, quin ha comprado y qu.
En la figura 2 hemos especificado que las cabeceras de columna del desglose seran los
Identificadores del producto. Podramos sin ningn problema haber eliminado como fila
la Descripcin y haberla incluido como cabecera, no lo he hecho as porque es un
campo demasiado grande para utilizarlo de esa forma y el sumatorio de cantidades
quedara perdido entre tanto espacio o no se leera el producto de que se trata por
escasez en el tamao de la cabecera.
En la figura 3 vemos exactamente los campos que no hemos utilizado, justamente uno
que nos interesa de manera especial pues queramos la suma de las cantidades por cada
producto. ste no hubiese servido como fila, carecera de sentido, pues lo que
precisamos es conocer los totales, no unos nmeros en una columna que no significan
nada.
A partir de que entienda el ejemplo, cualquier modificacin es vlida, siempre que se
recojan los campos en la primera Consulta realizada y de la que sta segunda toma los
datos. Hay que tenerlo muy presente.
Si pensamos en la estructura de tablas que realizamos desde un principio y los
resultados que se pueden ir obteniendo, creo que es fcil darse cuenta del por qu esa
estructura, esos ndices o campos clave y qu ocurrira de haberse realizado de otra
forma, por ejemplo con informacin redundante. El resultado sera penoso o inservible,
como poco muy difcil de manejar.
En cualquier caso lo que se ha hecho a travs del asistente tambin se podra efectuar
como una consulta desde Access, con algunas innovaciones. Vemoslo.

73

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

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.

Y el resultado es justamente el que cabe esperar y que se puede ver parcialmente.

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

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

Como se puede ver


he numerado las
distintas tablas de
tal forma que se
siga el orden de la
estructura
que
aparece arriba. El 1
corresponde a la
tabla
de
Proveedores con
sus datos. El 2 Son
las
tablas
de
Compras. Y el 3
son
las
Lneas_Compra. Al estar stas enlazadas con Productos y tener un campo en el que se
establece un Asistente para bsqueda, al pulsar en la flecha de IdProducto nos
mostrar todos los existentes. As las cuatro tablas que son las que componen el
desarrollo que hemos realizado para las compras que efectuemos estn al alcance de la
mano.
Es una forma cmoda, en especial si son muy pocos datos.
En cualquier caso como estamos hablando de Consultas, empezaremos por ellas.
Consultas de creacin de tablas.
Access considera la creacin de tablas que tienen un carcter ms o menos temporal,
como podra ser una consulta pero que por cualquier motivo nos interesa ms que se
convierta en una tabla.
No es que personalmente le encuentre gran utilidad tal y como se expone, porque las
posibilidades son mucho mayores, pero se dan casos en que s, por ejemplo una consulta
procedente de selecciones de tablas con muchos registros que se hacen lentas y debemos
utilizarla repetidamente, obtencin de datos a tratar de forma independiente, etc. Es
preferible crear una nueva tabla con los datos de la consulta.
Vamos a realizar una nueva Consulta, como hemos venido haciendo, en este caso sobre
Compras. Una estructura lgica a utilizar sera la que puede apreciarse en la imagen.

78

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

Guardamos la consulta, por ejemplo como ConsultaCompras. Con ella en modo de


diseo pulsamos la opcin de la pestaa de Diseo que concretamente es Crear Tabla.

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.

Bien, al pulsar a Aceptar nos aparecer. nada? Qu extrao! Bueno, ahora lo


pensamos, primero fijmonos en lo que tendra que aparecer. En primer lugar pedir que
guardemos la consulta, que es lo que hacemos con el nombre que hemos indicado. Por
lo tanto y como siempre, estar reflejada en cada una de las tablas que intervienen en
ella.
Si activamos la consulta creada en ste momento aparecer una ventana de aviso en
relacin a que se est ejecutando una consulta de accin que generar una tabla.

Al aceptarlo nuevamente obtendremos otra ventana de confirmacin, en este caso


referente a los registros y el nmero de ellos o de filas que va a insertar, que son tantas
como haya generado la ejecucin de la consulta. Al aceptar tenemos una nueva tabla
con el resultado, que aparece como una ms de la base de datos y la estructura que cabe
esperar, es decir, los campos visibles que hemos utilizado, con la estructura que
tuviesen en la tabla de origen y los datos resultantes.
79

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

Una vez a salvo, la consulta la podemos dejar o no, depende de si interesan


actualizaciones posteriores o con el contenido de la tabla hemos cumplido con lo que
queremos.
Pero vamos primero a ver qu ha ocurrido para que no nos permita la
creacin, pues por ello no se ha efectuado. Bien, pues precisamente ha sido
lo que se aprecia en la imagen y que tenemos, o tenamos, en el momento de
la creacin de la tabla.

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

Autor: Jos Luis Freire

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.

Consultas de actualizacin de datos.


Parece fcil de adivinar lo que se pretende con ste tipo de consultas: la actualizacin de
los datos existentes.
Creo que resulta fcil saber por qu, hace bastantes pginas, indicaba que el trmino
Consulta no iba en el mismo sentido que solemos utilizar coloquialmente, guarda una
relacin estrecha con lo que no estamos viendo, que son las opciones SQL y que
conlleva programacin.
En nuestro ejemplo es mucho ms simple utilizar la actualizacin a mano de un valor
antes que realizar una consulta, es decir, realizarlo a travs de la Vista de Hoja de Datos,
sin ms. Pero no es as en otros.
Veamos la operativa. Y para ello crear nuevamente la ConsultaCompras, pues al
generar una tabla en el apartado anterior, ya no debemos de tenerla. Pero hay que
considerar una perspectiva ligeramente diferente en un aspecto: en la zona QBE o
81

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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.

Una vez que se pulsa el icono Actualizar la


parte QBE cambia de aspecto, se eliminan
algunas de las opciones y se abre una
nueva que indica Actualizar a:
Si el problema es un error en un solo
registro, hay que identificarlo. Pero los
parmetros son
muy tiles para
esta cuestin.
Dejar la condicin anterior fija e indicar en ejecucin el
parmetro que interese, en ste caso la
fecha de compra.
Sobre esas
condiciones
lo
que
preciso es la
modificacin de la cantidad comprada en una fecha concreta
y sobre ese producto, por lo tanto es lo que debo filtrar para
introducir el cambio, originalmente los datos de bsqueda seran los que he subrayado.
La cantidad adquirida no es de 36 sacos, sino de 32 (por poner un ejemplo) por lo que
as lo indico en el campo correspondiente.

82

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

Si en lugar de Ejecutar la consulta pulsamos en Vista Hoja de Datos de la pestaa


Inicio, podemos apreciar los campos que van a ser
modificados antes de que se efecte la correccin. Por
supuesto nos pedir que introduzcamos el parmetro que
hemos especificado y en l incluimos la fecha que nos
interese. En este caso es la que aparece en la imagen
superior, el 17-04-2011.
Bien, es lo que nos interesa modificar, as
que desde la Vista de Diseo ejecutamos
la consulta. Nos pide el parmetro, como
es lgico, y nos informa del nmero de
registros que van a verse implicados, en
este caso tan solo uno. Y procede a la
actualizacin de la tabla.
Si
deshacemos
la
consulta
de
actualizacin a travs del icono de Diseo
y lo convertimos por lo tanto en una
consulta de visualizacin normal, podemos
apreciar que el cambio se ha efectuado, ya
no hemos adquirido 36 sacos sino 32 como
se puede apreciar.

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

Autor: Jos Luis Freire

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.

Anexar y eliminar datos.


Son dos tipos de consultas en las que no nos vamos a detener, en parte porque
humildemente considero que no son de importancia y porque vistas las anteriores stas
no tienen ningn secreto. Tan slo es utilizar, tras crear la consulta, las opciones de
Anexar o Eliminar.
En el primer caso se introduciran filas en una tabla, algo que es fcilmente sustituible
por las consultas de creacin de tablas con un condicional. Y la eliminacin es tan
simple como establecer una consulta con un filtro sobre los registros cuyos campos
cumplan las condiciones que establecemos.
Tras anexar o eliminar se ejecuta la accin de la misma forma que hicimos en las
anteriores Consultas.

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

Autor: Jos Luis Freire

2. Cursos que se imparten.


3. Alumnos.
Condiciones:
Un profesor puede impartir distintos cursos y se precisa saber cules.
Cada alumno puede apuntarse a ms de un curso, hay que saber a cules.
Puntualizacin sobre tablas:
Siempre que sea posible utilizad como claves los DNI con campos de texto y mscara
adecuada.
Todos los campos deben de tener una longitud adecuada.
Siempre que se pueda hay que introducir datos mediante un despliegue de los que
correspondan de otra/s tabla/s.
Se realizan cursos presenciales y en lnea.
A realizar:
Creacin de tablas, relaciones, etc.
Introduccin de datos desde la Vista correspondiente.
Consulta con el nombre del alumno, curso que realiza, nmero de horas, si es
presencial, precio y profesor que lo imparte.
Consulta con el importe total de las clases de cada profesor.
Consulta con cada alumno, el profesor de cada curso que realiza, el promedio de horas
considerando todos los cursos del alumno y las horas que corresponden a cada
materia.
Crear una tabla con el resultado de la consulta anterior.
Muy bien. La primera premisa que nos ofrecen es justamente las tablas principales que
necesitamos. Por qu motivo? Bueno, qu nos podemos encontrar si abrimos la puerta
de un aula? Con al menos un profesor, distintos alumnos y una materia que se est
impartiendo. En principio nada ms. Si se nos pidiese en el ejercicio podramos
incorporar el lugar fsico, la sala donde se realiza, o los medios para ello: proyectores,
pantallas, ordenadores, etc. Pero nada de eso se nos pide.
Por lo tanto est claro que el enunciado es una descripcin de las tablas bsicas que
compondrn la base de datos. Ahora debemos pensar con qu campos? Parece claro lo
que es un profesor o un estudiante, personas fsicas sin ms que estn implicadas en
unos estudios. Y sabemos a la perfeccin lo que es un curso, habida cuenta de que
leyendo hasta el final de la propuesta podemos deducir los campos que se precisan.
85

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

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:

P. Si los cursos no pueden estar duplicados y un profesor puede impartir


distintos cursos, es tan fcil como poner en el curso el profesor que lo da.

R. Podra ser, efectivamente, si tuvisemos la seguridad de que un curso solo


puede ser dado por un profesor, pero no la tenemos. Qu ocurrira, por ejemplo,
si el curso es Ofimtica y hay un profesor para Word y otro para Access? O
simplemente, si las tareas se reparten, nadie nos ha dicho que un curso deba de
ser dado por un nico profesor, de hecho hay cursos que tienen ms de uno a la
vez, por el nmero excesivo de alumnos u otros temas.

P. En ese caso, en lugar de poner en la tabla de Cursos el campo profesor


podramos poner en la tabla Profesores el campo curso.

R. No es posible, porque un profesor no est enlazado a un curso, sino que el


enunciado ya nos indica que puede dar varios.

P. Y No se pueden poner una cantidad de campos en la tabla de Profesores


suficientes? Por ejemplo, curso1, curso2, etc. hasta un nmero mximo.

R. Difcilmente se sostiene esa operativa. Por muchos motivos. Considerando


que estamos en bases de datos relacionales ni se deben de crear campos sin
contenido ni tampoco informacin repetida. Lo que indicas, en la prctica,
repercutira en una muy escasa posibilidad de realizar consultas u otras tareas.
Ese sistema es inviable.

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

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

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.

La ejecucin tiene que ser correcta por completo.

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

Autor: Jos Luis Freire

Hay varias formas de


creacin, como ocurre casi
siempre, pero vamos a
utilizar el Asistente para
establecer las bases del
formulario. A partir de l
no queda ms remedio que
funcionar de otras maneras
y en definitiva nos
haremos
una
idea
completa del por qu de
cada
cuestin.
Para
acceder a l tendremos lo
que se aprecia en la
imagen, que se encuentra
en la pestaa Crear, aunque he incluido todos los iconos para que estn presentes. Para
no necesitar la realizacin de ejemplos nuevos, utilizar los del ltimo ejercicio. Se
puede apreciar como la primera en la lista desplegable la opcin que nos interesa, por lo
tanto pulsamos sobre ella y nos aparecer la siguiente pantalla.

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

Autor: Jos Luis Freire

Dependiendo de lo que se haya seleccionado puede aparecer la siguiente pantalla o no.


En este caso lo har y nos permitir la seleccin de cmo visualizar los datos
considerando la tabla que seleccionemos. Adems, podemos incluir subformularios o
crear formularios vinculados. Opto por los primeros puesto que en caso contrario lo
que vamos a ver son los campos que seleccionemos como visualizacin quedando
ocultos en principio los restantes, de esta forma tendremos algo similar a dos
formularios en uno.

92

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

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.

El resultado que genera es el que podemos apreciar en la siguiente figura. Si miramos la


parte inferior de la misma veremos que hay flechas de desplazamiento. Puesto que
hemos seleccionado en primer lugar la tabla de alumnos como principal, y existe el
vnculo entre ambas dada la estructura de la base de datos que tenemos, los cursos que
aparecern en el subformulario sern los correspondientes al alumno que estemos
visualizando.

94

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

Hay que prestar un poco de atencin adicional a la


creacin de formularios por este sistema, ya que una
vez que se pulsa a finalizar se graban sin ms. No acta
como con los restantes elementos que pregunta de
forma previa, aqu los hace aparecer en la zona de las
tablas indicando tanto los que son formularios como
subformularios incluyendo aquellas tablas, que en ste
ejemplo sera la de Alumnos-Cursos, que se ven
implicadas aunque en ningn momento las hayamos
mencionado. Reflejmoslo en la imagen. Las lneas
subrayadas en rojo, que he dibujado, indican la
creacin de formularios y su tipo, si es el principal o
subformularios, en cada una de las tablas en las que
repercute.
No deja de ser un ejemplo muy claro de lo que
insistimos hasta la saciedad, sin una estructura bien
realizada, todo el proceso se nos vendra abajo,
carecera de un significado lgico.
Recorramos la Vista de Diseo.
Una mencin previa a la que podemos acceder como Vista Presentacin, y es
parcialmente una mezcla entre Diseo y Formulario.
En un formulario ocurre lo mismo que en una tabla, hay distintas formas de vista y la de
diseo est claro que debe de encontrarse presente. Desde la opcin Ver de la pgina de
inicio podemos acceder a ella, o con el botn secundario sobre el formulario, nos
aparece de la misma forma, es algo que conocemos. Pero la presentacin y las opciones
son completamente distintas y sensiblemente ms complejas. Vamos a buscar hacer un
recorrido por ellas.
Si accedemos a Diseo en el formulario creado por el asistente tendremos una imagen
como la que aparece a continuacin.

95

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

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

Autor: Jos Luis Freire

Introducir o eliminar campos


Sobre el ttulo de Herramientas aparece
la
opcin
Agregar
campos
existentes. Al pulsarlo se abrir en la
zona derecha de la pantalla, en primer
lugar, aquellas tablas que estn
afectadas por el formulario, como se
puede observar en la figura. Permitiendo
modificacin de aquellas.

la

En segundo lugar
aparecen aquellos
que se encuentran
disponibles
en
tablas relacionadas.

Y por ltimo los campos disponibles de otras


tablas.
Hay que mencionar, dado que estamos utilizando
un ejemplo existente, que sta ltima se cre a
partir de una Consulta.
Si no se aprecia de sta manera se debe a la opcin que
se encuentra en el extremo inferior de la Lista de
Campos, que es la que se puede apreciar. Cuando sta se
encuentra activa, es decir, se aprecian los bloques
anteriores, la opcin cambiar por Mostrar solamente los campos del origen de
registros actual que es la otra vista y que nicamente incluye los que se encuentran en
el formulario en ese momento.
Se puede introducir cualquiera de los campos arrastrndolo, con el ratn, hasta la parte
del formulario que queramos o con un doble clic en el mismo, en cuyo caso habr de
darle una ubicacin. Esto no es un problema, en el momento en que elijamos un lugar
donde incluirlo, los restantes campos se desplazarn.
Para eliminar cualquiera de los que se encuentran en el formulario basta con activarlos
pulsando con el ratn sobre el que nos interesa y simplemente utilizando la tecla
Suprimir o la opcin Eliminar si se abre el men contextual con el botn secundario.
Controles
Nos estamos refiriendo al bloque de actuaciones que se puede ver en la imagen y en la
pgina de Diseo.
97

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

Dependiendo de los que se traten realizarn distintas acciones, pero si queremos


ejecutar varias veces el mismo control en distintas partes del formulario, haciendo un
doble clic en l se mantendr activo, como se puede apreciar en la imagen superior y
que nos aparece por defecto Seleccionar y Utilizar asistente, lo que no significa otra
cosa que activar la ayuda a la creacin con un pequeo asistente en los casos en que se
requiera. Para eliminar la seleccin basta con una pulsacin sobre el icono
correspondiente.
Cada vez que se activa uno de ellos, el puntero del ratn se modifica acercndose a la
forma seleccionada y, segn se pulse en el formulario
para incluirlo, genera algo parecido a una doble
casilla, como podemos observar en la imagen tras
utilizar un Cuadro de texto. El punto mayor que se
ubica sobre cada zona permite el movimiento, mientras que, en aquellos casos en que
sea posible, los que hacen de circunvalacin al control, los ms pequeos, se utilizan
para aumentar o disminuir los tamaos.
En cualquier caso hay que tener en todo ello muy presente la Hoja de propiedades,
que se encuentra con carcter general en la parte
derecha de la pantalla y en vertical, ella ser sobre
la que podremos trabajar para conseguir las
caractersticas que buscamos. Si se activa el
Cuadrado de texto anterior, podremos ver que el
contenido de esa hoja es muy alto, en su pestaa
Formato se encuentran todas las caractersticas
posibles que puede tener el texto y su cuadrcula.
No sera una mala idea visualizar lo mismo desde
la Vista de Presentacin, en la que tendramos las mismas pestaas pero, a la vez que se
realizan las operaciones, se visualizan los resultados. Va a gustos, pero dado que se
pierden bastantes posibilidades, entendemos preferible trabajar con carcter general en
modo Diseo, de otra forma sta opcin no estara
al alcance.
Cuando el nmero de elementos utilizados en un
formulario es alto, demasiado juntos o incluso
superpuestos si se da el caso, puede resultar mucho
ms fcil el trabajo con la lista desplegable de
elementos que lo componen, lo cual se puede
realizar desde la parte superior de la hoja de
propiedades con la flecha indicando que existe un
desplegable, como se puede ver en la imagen.

98

Access 2007

El Rinconcito Informtico
http://www.elrinconcito.com

Autor: Jos Luis Freire

Vamos a numerar los iconos del rea de Controles y echaremos un rpido vistazo a los
ms frecuentes.

1. Un cuadro te texto tiene un formato de pregunta y distintas posibilidades de


actuacin. Puede ser til simplemente para mostrar determinada informacin, o
puede serlo para reflejar el valor de un campo, como tambin para realizar y
mostrar el resultado de una frmula o clculo, en cuyo caso ir precedido por un
=, como ocurre en Excel. Es bastante verstil pero hay que considerar que si
se trata de un campo o de lo que sea, la modificacin, que en principio es
posible, no se almacenar, no afectar como edicin de la tabla.
De utilizarse para mostrar un dato, puede copiarse directamente en la ventana de
muestra o utilizar la hoja de propiedades, tanto en la pestaa Datos como en Todas, pues
esta ltima siempre contiene al resto de las pestaas. Sera lo que se refleja en la
imagen:

En el caso de realizar clculos, como se ha dicho, un ejemplo de ello sera:

99

Вам также может понравиться