Vous êtes sur la page 1sur 8

Practica 7 Listas desplegables en Access

Queremos ampliar la informacin que se guarda en la ficha (o tabla) Datos Personales que
realizamos en la prctica anterior!
"os hace falta saber que estado ci#il tienen las personas que almacenamos$ puesto que un simple
campo de %asado con #alores &i o "o se nos queda peque'o!
Lo lgico ser(a habilitar un campo de te)to$ donde se pudiese escribir el estado ci#il de la persona$
de tal forma que tu#iesemos libertado para escribir cualquier cosa que nos hiciera falta!
Pero esta solucin es problemtica sobre todo si son #arias las personas que #an a introducir los
datos$ puesto que cada una tiene su criterio * es posible que algunos pongan la palabra %asado a
todos * otros hagan distincin entre %asado * %asada! +ste caso es facilmente resoluble$
simplemente dandoles unas pautas de introduccin de los datos * buscando un concenso!
&in embargo puede surgir el error * se pueden introducir palabras como ,%asdo- o %sado-$ etc!
A la hora de hacer b.squedas * localizar a las distintas personas o bien para datos estad(sticos$ le
diremos al ordenador que busque a todas las personas que en el campo +stado %i#il$ tengan la
palabra %asado!
&i la palabra no est bien escrita$ el ordenador no contar o encontr a esa persona$ lo cual puede ser
un error gra#e dependiendo de los datos que se encuentren en la base de datos * para qu/ se est/
interrogando a la misma!
0na posibilidad para que esto no ocurra es que podamos seleccionar los diferentes estados ci#iles
desde una lista desplegable!
La prctica que nos ocupa$ tratar de que aprendan cmo se hace!
Para ello lo primero que #amos a hacer es rectificar la tabla antigua de Datos Personales! Abrimos
la base de datos anterior * una #ez seleccionada la tabla Datos Personales$ hacemos clic1 sobre el
icono Dise'o para que nos muestre los nombre de los campos con sus tipos!
+liminaremos entonces el campo antiguo de %asado para a'adir uno nue#o de +stado %i#il!
Lo que #amos a introducir dentro de +stado %i#il$ sera un n.mero$ aunque eso pueda parecer un
poco e)tra'o al principio!
2ntroduciremos un numero porque #amos a crear una tabla con la lista de estados ci#iles que
queremos!
%uando estemos introduciendo datos en nuestra tabla de Datos Personales$ lo que #amos a guardar
no es el te)to ,%asado3a-$ sino el numero 4$ aunque esperamos que esto lo haga el ordenador de
manera automtica por nosotros!
5ueno hasta aqu( la e)plicacin de porque se pone num/rico en el tipo de +stado %i#il!
Ahora debemos proceder a crear la tabla +stado %i#il con los siguientes datos6
+s posible solo poner el +stado %i#il (de tipo 7e)to) * al cerrar la tabla$ nos asignar
automticamente el 2D como Autonum/rico * %la#e Primaria (por eso nos pone una lla#ea la
izquierda de la palabra 2d)!
A continuacin debemos abrir la tabla e introducir los #alores que #imos en la tabla superior
(&oltero3a$ %asado3a$ etc)
0na #ez creada esta tabla con sus datos$ debemos decirle a Access que estan relacionadas! 0na
relacin implica que los campos que lo este deben ser del mismo tipo o al menos de tipos
compatibles$ es decir "0"%A se puede relacionar un tipo num/rico con uno de te)to!
Para hacer la relacin debemos abrir el men. 8erramientas * seleccionar 9elaciones!
Debemos a continuacin debemos sacar las dos tablas a relacionar! &i no estan *a #isibles$ debemos
con el botn derecho del ratn ,:ostrar tabla!!!-
Para establecer una relacin$ se debe arrastrar uno de los campos sobre el otro! &i el campo no es
#isible$ se debe hacer la tabla mas grande o buscarlo haciendo clic1 sobre las flechas!
+)isten #arios tipos de relaciones$ pero con la que #iene definida por defecto$ nos sir#e
perfectamente$ as( que cuando nos pregunte por el tipo de relacin que queremos asignar$
simplemente seleccionamos el boton %rear!
&abemos que la relacin esta correctamente e;ecutada porque se crea una l(nea entre los dos
campos! +n este caso hemos creado una relacin entre +%i#il (de tipo num/rico) e 2d
(Autonum/rico) *a que ambos son de tipo num/rico! +sta relacin implica que los #alores que
introduciremos en +%i#il$ no pueden ser otros #alores que no esten en 2d!
Ahora #amos a #ol#er al dise'o de nuestra tabla Datos Personales para indicarle a Access que
queremos hacer una lista desplegable para introducir los #alores del +stado %i#il!
+n la pesta'a 5.squeda de +%i#il$ seleccionamos que muestre un cuadro combinado!
A continuacin #amos a crear una consulta (una consulta es un listado de los #alores que contiene
una o #arias tablas! Los #alores de estan consultas los podemos ordenar$ restringir$ etc!) !especificar
de donde toma los #alores este cuadro combinado!
Debemos hacer clic1 entonces sobre ,!!!- de <rigen de la fila!
Para crear la consulta que contendr los datos de la lista desplegable!
+n un principio ser(a tan sencillo como especificar que es la columna +stado %i#il de la tabla
+stado%i#il$ la que queremos que nos muestra al desplegar la lista (porque es el que contiene los
datos %asado3a$ &oltero3a$ etc)!
&in embargo debemos especificar en la b.squeda que #alor se #a a introducir en la base de datos si
seleccionamos un campo! +s decir si seleccionamos ,%asado3a-$ en realidad en el campo +%i#il de
Datos Personales deber(amos introducir el n.mero 4!
+ntonces rehacemos nuestra consulta$ #ol#iendo a pulsar sobre ,!!!- e incluimos la columna 2d en la
segunda posicin!
De tal forma que ahora la lista desplegable tendr dos columnas$ en la primera estar el nombre del
+stado %i#il * en la segunda el #alor de su cla#e primaria!
Despues de cerrar la consulta$ ha* que completar los siguientes #alores que le indican cuantas
columnas ha* en la consulta * de donde se recoge el #alor que ha* que introducir en la base de
datos!
La columna dependiente es la numero dos$ es decir de la columna numero dos Access tomar el
#alor num/rico que debe introducir en la base de datos! 9ecordar que el campo +%i#il es un campo
numer(co * lo que introduciremos en /l$ no ser ,%asado3a- sino el n.mero 4!
+n n.mero de columnas ponemos un 4 porque ha* dos columnas en la consulta!
%erramos * creamos un =ormulario$ utilizando el asistente$ para obtener uno similar al que
mostramos en la siguiente captura de pantalla6
>emos que podemos asignar ahora un #alor desde una lista! +l .nico problema es que queda feo el
n.mero al lado del #alor de te)to!
Lo que haremos ser eliminar este formulario * #ol#er a la tabla en la #ista dise'o!
Le decimos que solo queremos #er una columna$ cerramos$ #ol#emos a crear un =ormulario * *a lo
tenemos!
?a tenemos el formulario como quer(amos!
+l resto de la prctica se completa asignando #alores al azar de +stado %i#il a las 7 personas que
introdi;imos en la prctica anterior!
Debes darte cuenta de que la consulta se ha hecho poniendo primero la columna que queremos #er$
es decir el te)to (es decir %asado3a$ >iudo3a$ etc$ en la columna #isible) * en la segunda (que es la
que haremos in#isible) los #alores que se #an a introducir en la base de datos!