You are on page 1of 6

MANUAL DE ACCESS

ANEXO A LA LECCIN SEGUNDA

ndice de contenido
POR QU ESTE ANEXO?................................................................................................................2
CONSULTAS REALIZADAS.............................................................................................................2
CUNDO SE DEBE UTILIZAR UN ID AUTONUMRICO?...................................................2
POR QU UTILIZAMOS DOS CAMPOS PARA LA TABLA MESES?....................................3
EJEMPLOS DE MSCARAS DE ENTRADA..............................................................................4
PARA ACABAR...................................................................................................................................6

Vistame en http://siliconproject.com.ar/neckkito/

POR QU ESTE ANEXO?


Algunos de los que habis seguido este manual habis
realizado algunas consultas relacionados con l, y, ms en
concreto, con los contenidos de la leccin segunda. Podra
haber modificado la leccin 2 directamente para dar
respuesta a dichas preguntas, pero he credo ms
conveniente separar en un anexo estas preguntas por dos
motivos:

El primero, porque quiz esa duda pueda estar


latente y no ser conscientes de que, con una explicacin
extra, entenderamos mejor los conceptos.

El segundo, por comodidad, dado que si cada vez que hay una consulta tengo que
modificar todo el captulo pues... ufff. As, cuando surjan consultas, las aado a este anexo y
ya est.
Quiz en un futuro, si este documento crece desproporcionadamente, se haga necesario una
revisin del captulo 2. Pero bueno, eso ya ser en un futuro lejano (o no).
CONSULTAS REALIZADAS

CUNDO SE DEBE UTILIZAR UN ID AUTONUMRICO?


Vayamos por partes: como teora pura dura un identificador clave principal(sea o no
autonumrico) es un campo que no admite valores duplicados y que sirve para identificar de
manera inequvoca un registro.
Al ser clave principal automticamente decimos que est indexado (recordemos que puede
haber campos indexados que admiten valores duplicados). De hecho, si sacamos las
propiedades del campo veremos que tenemos 3 opciones:

Indexado: NO

Indexado: S (con duplicados)

Indexado: S (sin duplicados)


Ahora ya encontramos dos funciones, pues:
.- La primera, que ya sabemos, evitar valores duplicados
.- La segunda, ser un campo indexado
Y qu significa ser un campo indexado? Pues, para que nos entendamos, un campo indexado
facilita las operaciones, en especial de bsqueda, en Access. Es decir, estamos mejorando el
rendimiento de la base de datos.
Por decirlo de alguna manera muy poco acadmica diramos que, en el proceso de bsqueda
en una consulta, por ejemplo, si tenemos el campo indexado Access ya est preparado para
empezar la carrera (colocado en su puesto de salida y con las zapatillas de clavos puestas). Si
el campo no est indexado pues... que empieza la carrera y Access an tiene que ponerse las
zapatillas.
Evidentemente, el rendimiento del primer supuesto ser superior al rendimiento del segundo
(dudo que gane ninguna carrera as).
Por otra parte, y si ya profundizamos en temas de programacin, el manejo de nmeros es
mucho ms prctico y flexible que el manejo de cadenas de texto. Y si tenemos que programar
2

Vistame en http://siliconproject.com.ar/neckkito/

sobre varias tablas y en ellas hay un identificador, de tipo numrico, por qu no utilizarlo
como referencia, ya que nos identifica inequvocamente el registro? En pocas palabras, nos
da la seguridad de que estamos trabajando sobre el registro correcto, y no otro.
Avancemos un paso ms: tengo preparados todos mis
campos de la tabla y s de la importancia de poner un
identificador numrico. Pero, qu tengo qu hacer?
Ponerlo y cada vez que d de alta un registro yo mismo
tenerle que escribir un nmero? Pues no! Para eso est el
to Access que tiene un campo de tipo autonumrico que
hace ese trabajo por nosotros.
Finalmente deciros que si queremos establecer una relacin de tipo 1:N es imprescindible
utilizar un ID autonumrico. Por ejemplo:
Imaginemos que tenemos una tabla donde tenemos los datos de un trabajador, y que nuestra
clave principal es el DNI del trabajador.
Por otra parte imaginemos que tenemos otra tabla donde queremos meter los datos de
absentismo del trabajador. Lgicamente esa tabla se nos relacionar con la primera a travs
del campo DNI.
Si tenemos esas dos tablas configuradas as:
TABLA DATOS TRABAJADOR

TABLA DATOS ABSENTISMO

DNI (Clave principal)

DNI (Clave principal)

Datos....

Fechas y motivos de absentismo...

La tabla de la izquierda es el 1 de la relacin; la tabla de la derecha debera ser el N de nuestra


relacin (un trabajador puede ausentarse varias veces). Pero el problema es que, as como lo
tenemos configurado, la relacin es de 1:1
En pocas palabras, que slo podremos introducir una sola ausencia. Si intentamos meter ms
ausencias Access nos avisar de que no se permiten valores duplicados en la clave principal.
Cmo convertimos esa relacin en una relacin de 1:N? Pues cambiando la estructura de la
segunda tabla, aadindole un ID autonumrico, clave principal.
Si lo hacemos as (y, en consecuencia, el campo [DNI] deja de ser clave principal y admite
duplicados) ya tenemos establecida la relacin que queramos: uno a varios (1:N).
POR QU UTILIZAMOS DOS CAMPOS PARA LA TABLA MESES?
Vamos a imaginar un supuesto: nuestra tabla meses slo tiene un campo, que es el nombre
del mes. Por mecnica de la base de datos, este campo se rellena segn necesidad. Hasta aqu
todo bien.
Imaginemos que necesitamos un combo, o un cuadro de lista, que nos recoja los meses para
poder seleccionarlos en un formulario. Creamos el combo y nos encontramos que nos muestra
los siguientes valores:
Marzo
Junio
Febrero
etc.
3

Vistame en http://siliconproject.com.ar/neckkito/

Vaya! Eso no es prctico. Hacemos una ordenacin A->Z? Pues no tiene mucho sentido,
puesto que no vamos a poder conseguir que nos muestre los meses ordenados como
queremos.
Cul es la solucin? Pues aadirle a la tabla un campo de
tipo numrico que nos identifique cada mes con su nmero.
As s que podemos realizar una ordenacin A->Z sobre el
campo numrico, y los meses se nos mostrarn en el orden
correcto.
Y esto, aplicable a este supuesto del combo o cuadro de
lista, tambin es aplicable cuando realizamos un informe y
queremos realizar un agrupamiento por mes.
Finalmente, y ya hablando de programacin, el tener el nmero de mes facilita la escritura de
cdigo. Imaginemos que queremos sacar las ventas del primer trimestre. Si no tenemos
nmero de mes deberamos escribir (en abstracto)
...
Mustrame las ventas del mes 'Enero y las ventas del mes 'Febrero' y las ventas del mes
'Marzo'

Si tenemos ese campo numrico, lo anterior se nos queda as:

Mustrame las ventas donde el mes sea <=3

Definitivamente, mejor utilizar un campo numrico con el mes.


EJEMPLOS DE MSCARAS DE ENTRADA
Si bien Access tiene un chivato que nos permite utilizar mscaras de entrada hay algunas
cosas que quiz sea interesante remarcar. Evidentemente podemos poner un buen nmero de
mscaras de entrada como ejemplo (cosa que no voy a hacer), pero s comentar algunas
cosas que quiz nos puedan ayudar a entender su funcionamiento.
Os copio aqu la informacin que proporciona Access, para que la podamos tener como
referencia:

Carcter

Descripcin

Dgito (0 a 9, entrada obligatoria, signos ms [+] y menos [-] no permitidos).

Dgito o espacio (entrada no obligatoria, signos ms y menos no permitidos).

Dgito o espacio (entrada no obligatoria; los espacios se muestran en blanco en el modo Edicin, pero se
eliminan cuando se guardan los datos; signos ms y menos permitidos).

Letra (A a Z, entrada obligatoria).

Letra (A a Z, entrada opcional).

Letra o dgito (entrada obligatoria).

Letra o dgito (entrada opcional).

&

Cualquier carcter o un espacio (entrada obligatoria).

Cualquier carcter o un espacio (entrada opcional).

Vistame en http://siliconproject.com.ar/neckkito/

.,:;-/

Marcador de posicin decimal y separadores de miles, fecha y hora. El carcter real utilizado depende de
los valores del cuadro de dilogo Propiedades de Configuracin regional del Panel de control de
Windows.

<

Hace que todos los caracteres se conviertan a minsculas.

>

Hace que todos los caracteres se conviertan a maysculas.

Hace que la mscara de entrada se muestre de derecha a izquierda, en lugar de mostrarse de izquierda a
derecha. Los caracteres especificados en la mscara siempre se rellenan de izquierda a derecha. Puede
incluir el signo de exclamacin en cualquier lugar de la mscara de entrada.

Hace que el carcter siguiente se muestre como un carcter literal (por ejemplo, \A se muestra slo
como A).

Vamos pues a aplicar algunos ejemplos raros para entender mejor las mscaras.
Obligatoriedad de existencia del dato
Dato exclusivamente numrico: utilizamos 0
Dato exclusivamente texto: utilizamos L
Dato numrico o texto: utilizamos A
Cualquier carcter o espacio: utilizamos &
No obligatoriedad de existencia del dato
Dato exclusivamente numrico: utilizamos 9 (en este caso se admiten espacios)
Dato exclusivamente texto: utilizamos ?
Dato numrico o texto: utilizamos a
Cualquier carcter o espacio: utilizamos C
Conversin a maysculas: utilizamos >
Conversin a minsculas: utilizamos <
Queremos el valor literal que escribamos: \
Establezcamos los siguientes supuestos:
a) Tenemos un artculo que tiene un cdigo de artculo con un formato determinado.
Imaginemos que ese cdigo es, por ejemplo: 12A-125BC . Es decir: dos nmeros / letra
mayscula / guin (valor literal) / tres nmeros / dos letras maysculas
Lgicamente, todos los valores son de entrada obligatoria.
La mscara sera, pues:
00>L\-000>LL
b) Tenemos que escribir el nombre de una ciudad, y queremos que el primer carcter sea en
maysculas y el resto en minsculas. Supongamos que el tamao del campo lo hemos fijado
en 8 caracteres. La entrada no es obligatoria.
La mscara sera, pues:

Vistame en http://siliconproject.com.ar/neckkito/

>?<???????
1 carcter en mayscula y 7 caracteres en minscula = 8 (restriccin de tamao de campo)
c) Tenemos que escribir una valor alfanumrico, con un
tamao mnimo de 6 caracteres, forzando que los
caracteres tipo texto sean en minsculas.
La mscara sera, pues:
<AAAAAA
Si la introduccin del valor fuera opcional la mscara sera:
<aaaaaa
d) Tenemos que introducir un valor obligatoriamente, que adems puede contener espacios, y
que adems queremos que en la cuarta posicin aparezca la letra x. Por ejemplo MI Jx23 K
La mscara sera:
>&&&&\x&&&&
Bueno... creo que con estos cuatro ejemplos ha quedado ms o menos claro (espero que
ms) la utilizacin de mscaras de entrada.
PARA ACABAR...
Si tenis ms preguntas plantedmelas tranquilamente, que las aadir aqu sin problema (si
s la respuesta, claro ;) )
Suerte!

Vistame en http://siliconproject.com.ar/neckkito/

You might also like