miércoles, 12 de diciembre de 2012

Guía rápida de Access 2010 (aplicable a otras versiones de Access y a LibreOffice Base)

                    (P) Hugo Napoli, 2012                    


Guía rápida "paso a paso" de empleo de MS Access para crear bases de datos.


I. Creación de la base de datos.

1. Abrir Access, seleccionar "Base de datos en blanco" y darle nombre al archivo que estamos creando. El nombre podría ser, por ejemplo, "Base de datos de prueba".

2. Darle una ubicación al archivo, dentro del árbol de directorios del Sistema. Una ubicación a modo de ejemplo, podría ser el Escritorio.
NOTA IMPORTANTE: una vez definida la ubicación, no es conveniente mover la base de datos hacia otro lugar, puesto que hay veces en las cuales Access pierde la referencia lógica de la ubicación de los archivos, y ya no puede volver a abrir la base de datos (!)

En la imagen se pueden apreciar 3 cosas importantes a tener en cuenta.
1. "Base de datos 1.accdb" - Es el nombre que le estamos dando al archivo de base de datos.
Hay que recordar que el nombre debe ser significativo, a efectos de no perder tiempo y malgastar esfuerzos en tratar de encontrar una base de datos entre 15 que tengan nombres parecidos, tales como "Base de datos1.accdb", "Base de datos2.accdb", "Base de datos3.accdb", "Base de datos", "Base", etc.
Al menos una palabra en el nombre del archivo debe indicar su contenido. Ejemplos de ello podrían ser: "Librería", "Farmacia", "Base clientes", "Teléfonos", "Agenda en Access"...
2. "C:\Users\Hugo\Documents\" es el lugar exacto dentro del sistema de directorios de Windows, en este caso, en el cual reside la base de datos. Para volver a abrirla, ya sabemos que si entramos al ícono "Mi PC" (en Windows XP), o a "Equipo" (Windows Vista, 7 y 8), y luego entramos al disco "C:", al directorio "Users", al usuario "Hugo" y finalmente al directorio "Documentos", allí encontraremos a nuestra base de datos.
3. Para abrir el navegador de directorios de Windows y de ese modo dar una ubicación a nuestra base de datos (tal como se comenta en el punto 2), debemos pulsar esa pequeña carpeta amarilla que allí se ve.


II. Creación de tablas y personalización de campos.

3. Por último, al hacer clic en el botón "Crear", Access mostrará una tabla ya lista para introducir datos en ella.

4. Deben definirse, en primer lugar, las propiedades de los campos, es decir, el nombre y el tipo de cada uno de ellos. Si bien esto puede simplificarse abriendo nuevos campos con la opción texto desde la "Vista normal", recordemos que, en cuanto la tabla posea datos, esto será difícil de cambiar.
El hecho de generar campos con el formato texto por comodidad, puede llevarnos a problemas grandes una vez que comencemos a volcar datos a la tabla.
Esta es una opción válida siempre y cuando la tabla no contenga datos, o cuando sepamos que únicamente necesitamos campos con ese formato.
El nombre de los campos puede ser arbitrario, y los tipos de campo más utilizados son:
- Texto (alfanumérico: letras, números tratados como texto y símbolos). Admite cualquier tipo de caracter, como se puede apreciar.
- Número (únicamente números y signos matemáticos). Admite números, signos matemáticos de representación de cifras (+ y -), y en ocasiones, letras de la A a la E para notación hexadecimal.
- Moneda (admite cifras expresadas en los formatos financieros convencionales). Un buen ejemplo podría ser el siguiente: U$S 14,55
- Fecha y hora (admite fechas y horas en los formatos convencionales). Un ejemplo: 14/10/2016 18:36:22 PM
- Sí/No (para valores booleanos). Es comúnmente utilizado al llenar datos en una planilla que comprende los siguientes cuestionamientos: ¿Fuma? ¿Tiene hijos? ¿Es mayor de edad? En lugar de estar escribiendo "Sí" y "No" hasta el cansancio, es conveniente formatear dicho campo como "Valor booleano", lo cual simplificará enormemente las cosas. 
- Hipervínculo (para direcciones web o de correo electrónico). Convierte a hipervínculo todos los datos del campo, para que, al hacerle clic con el ratón, el Sistema Operativo abra el navegador por omisión (Google Chrome, Mozilla Firefox, Internet Explorer, ...) con la página web indicada. Si en este campo introducimos "http://www.google.com.uy" entonces, al hacer clic sobre esa cadena de texto, el Sistema abrirá el navegador en la página de Google Uruguay.

Aquí se puede apreciar cómo con un simple clic izquierdo -en Office 2010- Access muestra las posibles propiedades de tipo de campo admitidas. En Office 2007 esto no funciona así. El campo es creado con el valor por omisión o defecto (generalmente "Texto"), y solo en "Vista Diseño" es que este valor podrá ser alterado.

Para trabajar con mayor seguridad, esto debe hacerse empleando el modo de diseño.
Para ello hay que seleccionar el menú "Inicio", y dentro de la cinta, hacer clic sobre el indicador desplegable del botón "Ver", opción "Vista Diseño".
Los campos estarán orientados horizontalmente, a diferencia de como aparecen en la vista de hoja de datos (vista normal).
En la columna "Nombre del campo", escribiremos los nombres de cada campo, y en la columna "Tipo de datos", seleccionaremos -para cada uno de los campos- el tipo correspondiente, según la clase de datos que ese campo vaya a contener.
Por esta razón es que resulta conveniente organizarse antes de construír en Access. Tener pensado o diagramado un pequeño esbozo o bosquejo del proyecto a llevar a cabo no está nada mal.

5. Luego de finalizar con esa tabla, debemos guardarla y cerrarla, y a continuación darle el nombre que corresponda. Mientras la tabla esté abierta, Access no nos permitirá cambiarle de nombre, y -NOTA MUY IMPORTANTE- si no la guardamos antes de cerrarla, la perderemos (!)
Para guardarla, basta con hacer clic derecho sobre la pestaña identificadora de la tabla, y elegir la opción "Guardar", y para cerrar la tabla, hacer clic derecho sobre la misma pestaña identificadora de la tabla, y elegir la opción "Cerrar".


Aquí se muestra el procedimiento que es conveniente mecanizar para evitar inconvenientes: tras cada modificación: guardar la tabla. Antes de cerrar, guardar. Esto, por practicidad, es bueno hacerlo siempre "cliqueando" el botón derecho del ratón sobre la pestaña de la tabla en cuestión, como aquí se ve.
En el segundo paso, se debe aprovechar la ocasión que nos da Access para darle un nombre más significativo a la tabla. Otra opción para realizar el cambio de nombre es, con la tabla guardada y cerrada, hacer clic en dicha tabla en la zona de la izquierda y escoger la opción "Cambiar nombre".

6. Para crear nuevas tablas, haremos clic en el menú "Crear" y seleccionaremos, en la cinta, la opción "Tabla".
Repetiremos desde el paso 4 hasta el 6, hasta que hayamos finalizado nuestra construcción.


Si posicionamos el puntero del ratón sobre cualquier botón de Access y lo dejamos en reposo durante unos segundos sin moverlo ni pulsar ningún botón, observaremos que aparecerá una pequeña ventana emergente de ayuda, dándonos breves descripciones de lo que sucedería si escogiésemos esa opción.


III. Relaciones entre campos (1): jerarquización de la información.

Antes de continuar, debemos establecer criterios importantes para evitar trabajar incansablemente en cuestiones fácilmente automatizables.

Existen las tablas principales y las secundarias.
La principal, es la más importante de nuestro proyecto.
En una base de datos de una biblioteca, la tabla principal será la que agrupe los datos generales de los libros (ficha del libro), pero las secundarias sólo poseerán datos particulares de los mismos (la tabla de la ficha de los autores, la de las editoriales, la de los países de origen del libro, la de ubicación en la estantería, la de cantidades, la de encuadernaciones, etc.).

Ciñéndonos a estos criterios, primero debemos llenar los datos de las tablas secundarias, y al final, los de la principal (sirviéndonos a su vez de las secundarias).
Esto significa que es imposible ingresar un libro en la tabla principal si aún no se ha ingresado su autor en la tabla secundaria.
Si en mi base de datos sólo tengo a Gabriel García Márquez, solamente podré ingresar libros de ese autor. Si me llega uno de Juan Carlos Onetti, deberé ingresar a Onetti en la tabla de autores en primer lugar, y, acto seguido, ingresar todos los libros de ese autor al Sistema.
Por ello es que las tablas secundarias deben llenarse antes, y la principal, por último.


IV. Definición de índices

Hay un elemento crucial a tener en cuenta.
Todas las tablas deben poseer un índice para que la búsqueda automatizada dentro de ellas pueda efectuarse de manera segura, fiable.
El índice es comúnmente generado por Access, y nosotros nos limitamos a introducir datos dejando que ese índice numérico interno aumente en la medida de la cantidad de registros que haya en las tablas, y esta es una excelente técnica.
Nunca debemos eliminar ese campo "Id" que Access genera automáticamente, aún en el caso hipotético de no necesitarlo. Siempre conviene dejarlo automatizado y controlado por Access.
Mas, si de todos modos, necesitamos establecer otro tipo de índice para nuestras tablas, podemos hacerlo sencillamente indicándole a Access que el índice estará constituído por el campo tal o cual, y no por el Id interno.
El Id, entonces, seguirá obrando del mismo modo, es decir, incrementándose en la medida en que los registros aumenten, pero ya Access no dirigirá su atención a ese campo, sino al que nosotros hayamos indicado.
Pues bien, ¿cómo se cambia el índice?
O en otras palabras, ¿cómo se desplaza el índice hacia otro campo?

7. Para esto debemos abrir o seleccionar la tabla en cuestión y cambiarnos a la vista de diseño (clic en el botón "Ver", opción "Vista Diseño").
Aparecerá entonces, inmediatamente a la izquierda del campo Id generado por Access, una pequeña llave, indicando que ese es el campo que corresponde al índice.
Si hacemos clic derecho en cualquier otro campo, entre las opciones que aparecerán en el menú contextual, estará "Clave principal", la cual, al ser seleccionada, hará que la llave se cambie a otro campo.


En la imagen se muestra cómo Access define el índice o campo maestro. La llave indica que el índice de esa tabla reside en el campo "Id". Por omisión, Access siempre crea un campo indizado y automatizado llamado "Id", el cual no conviene eliminar aunque aparentemente no sea necesario en nuestro proyecto. Esto solamente se ve en la "Vista Diseño", en donde también se puede cambiar.



V. Relaciones entre campos (2): fidelidad en el tratamiento de la información.

De nada sirve, en el mundo de las bases de datos, el hecho de repetir el mismo dato en más de una tabla.
Por ejemplo, el título de un libro sólo debe aparecer en la tabla "Títulos", pero no en la tabla "Autores".
Ahora bien, ¿cómo "sabe" Access qué títulos corresponden a cada autor?
Esa relación entre títulos y autores, automóviles y marcas, nombres y números telefónicos, se logra relacionando campos.
Relacionar el título de un libro con su autor, es enlazar el campo "Título" de la tabla "Libros" con el campo "Autor" de la tabla "Escritores", por ejemplo.
Por este motivo es que en la tabla correspondiente a los autores generalmente no aparece ningún título, y viceversa: porque hay un modo de no repetir información, y ese modo es el de relacionamiento entre campos, o entre tablas, lo cual es casi lo mismo.

NOTA IMPORTANTE: no es posible establecer relaciones entre campos de distinta naturaleza, como por ejemplo, el campo "Id" (numérico) de la tabla de títulos, con el campo "Nombre_Editorial" (alfanumérico) de la tabla de editoriales.
Tampoco pueden relacionarse campos que no contengan clave principal, es decir, al menos un campo debe tener clave principal para poder relacionarse con otro.
Por ello es que es necesario, en ocasiones, cambiar la clave principal de alguna que otra tabla.

8. Debemos guardar y cerrar las tablas entonces, y a continuación, seleccionar el menú "Herramientas de base de datos", y en la cinta, hacer clic en "Relaciones", tal como se muestra en la siguiente figura.


Access abrirá un pequeño panel conteniendo todas las tablas de nuestro proyecto. El panel es el que se muestra en la siguiente imagen.

NOTA: si en algún momento cerramos este panel y necesitamos abrirlo nuevamente, solo hay que hacer clic derecho en un lugar vacío en el espacio de relaciones y seleccionar "Mostrar tabla".

Seleccionaremos la primera tabla haciendo clic en el renglón correspondiente y pulsando el botón "Agregar". La tabla seleccionada quedará visible detrás de nuestro panel.
Luego haremos lo mismo con la segunda, la tercera, etc., hasta que todas hayan quedado incluidas en la sección "Relaciones" (detrás del pequeño panel).
Al finalizar, presionaremos el botón "Cerrar", y el panel desaparecerá. Nuestras tablas ya están listas para efectuar en ellas las asociaciones necesarias.


Las relaciones se establecen, sencillamente, haciendo clic izquierdo en uno de los campos de una tabla cualquiera, y sin soltar el botón izquierdo del ratón, arrastrando el puntero hasta el campo de la tabla que sea.
Al soltar el ratón, aparecerá un pequeño panel en donde podremos establecer ciertos atributos a esa relación (ver siguiente imagen).


Aún existiendo en esta sección más opciones que estas a las cuales haré referencia, es importantísimo comprender estas tres fundamentales.


1. Exigir integridad referencial: indica que no podrán establecerse relaciones entre campos vacíos.

En la ficha general del libro, se muestra su autor. Pero si en la tabla de autores, no existe el apellido del autor del libro... ¿cómo es posible presentar esa información a un lector, por ejemplo?
Para que esto no suceda, debe marcarse esta casilla, de modo que Access no permita que un libro esté vinculado a un campo vacío de la tabla de autores.
Si esta casilla está marcada y se pretende ingresar un libro sin autor, Access mostrará una advertencia e impedirá el ingreso de la información hasta que esta se introduzca como corresponde.
Hay que recordar que si las tablas están abiertas, no será posible relacionarlas. ¡Así es Access!
Y no olvidemos guardarlas antes de cerrarlas ¡Así también es Access!

2 y 3. "Actualizar en cascada..." y "Eliminar en cascada" los registros seleccionados: estas dos opciones deben ser marcadas por un tema de orden y control de la base de datos.
"En cascada", significa "en grupo", "en bloque", "en conjunto".
Si estamos trabajando con la base de datos de una empresa, y eliminamos a un cliente de la tabla títulos, lógicamente querremos que el resto de sus datos sean eliminados de las tablas secundarias, si es que existen.
Lo mismo sucederá si se ha ingresado un nombre con faltas de ortografía y a alguien se le ocurre corregir esto, o bien si algún cliente ha cambiado su dirección y número telefónico y hay que actualizar esos datos.
Si estas opciones no están marcadas, estaremos eliminando al cliente de la tabla principal, pero dejando información huérfana en el resto de las tablas, y en el caso de modificación de la información, estaremos modificando en una sola tabla, pero no en el resto. Y no querremos trabajar "a ojo"... ¿o sí?
Para mantener una base de datos en buen estado de integridad, estas opciones deben ser tenidas en cuenta.

VI. Errores frecuentes

IMPORTANTE: Hay errores característicos para los cuales es mejor estar preparados antes que surjan. En el relacionamiento de campos es cuando más surgen, así que, no desesperes, trata de comprender la mecánica del programa, y si algo sale mal, revisa todos los pasos que has dado, a ver en cuál tropezaste. Si aún siguen las cosas mal, elimina el campo que esté en conflicto y créalo nuevamente. Si aún así sigue mal, elimina la relación, o hasta la tabla que creas que ocasiona el problema y reconstrúyela... y si luego de todo ello sigues con un error contra el cual no puedes lidiar... comienza desde cero... no hay otra alternativa además de abandonar el proyecto.

ERROR MÁS FRECUENTE: la tabla está en uso y no se puede renombrar/relaciuonar/eliminar/etc.
SOLUCIÓN: guarda y cierra la tabla, y luego prosigue tu tarea.

ERROR COMÚN: estás tratando de relacionar dos tipos de campo de diferente naturaleza.
SOLUCIÓN: redefine el tipo de los campos que estás necesitando relacionar, para que ambos sean del mismo tipo: moneda con moneda, fecha con fecha, texto con texto, booleano con booleano, etc.

ERROR MENOS FRECUENTE: intentas relacionar un campo no indizado con otro cualquiera.
SOLUCIÓN: cambia la "llave" (en modo Diseño) y sitúala en el campo que corresponda de la tabla secundaria.

Al finalizar, habrá quedado alguna línea (o algunas líneas) dibujada entre las tablas, indicando que la tabla 1 se relaciona con la tabla 2 a través de los campos x e y, por ejemplo.
Esas líneas visibles son las relaciones lógicas.
Basta con hacer doble clic sobre la línea (teniendo buena puntería) para modificar la relación, o con hacerle clic derecho para que aparezcan más opciones en un menú contextual emergente, como por ejemplo "Modificar relación" o "Eliminar relación".


NOTA 1: las relaciones aparecerán en la base de datos como una pestaña más junto a las tablas.
Trataremos a esta pestaña como a cualquier pestaña de cualquier tabla: hay que guardarla antes de cerrarla, para que no se pierda.



NOTA 2: si hemos incluido por error una tabla con la cual no nos interesaba trabajar, haremos clic derecho sobre ella y seleccionaremos "Ocultar". Esto no borra la tabla de nuestro proyecto, ni elimina las relaciones efectuadas sobre ella. Solamente la quita del espacio de "Relaciones".



VII. Complementos (1): DEFINICIONES Y NOTAS.

- "Campo" es el grupo (generalmente es una columna) que nuclea o contiene datos del mismo tipo.
Un nombre de campo, entonces, nunca estará conformado por un elemento, sino por un nombre abarcativo o de grupo.
Por ejemplo, en el grupo de elementos siguiente: Uruguay, Cuba, Canadá, Italia, Egipto, China y Australia, el nombre de campo debería ser "Países".
En el grupo de elementos: Mabel, Martha, José, Susana, Jéssica y Antonio, el nombre de campo debería ser "Nombres de pila", por ejemplo.

- "Registro" es una combinación de campos. Por ejemplo: Susana de Uruguay, Antonio de Italia, José de Cuba, etc.

- "Tabla" es el lugar en donde se organiza la información de ciertos campos y ciertos registros.
Por ejemplo, puede existir una tabla llamada "Clientes" que contenga los siguientes campos: Número de cliente, Nombre, Apellido, Dirección, Teléfono y Correo electrónico.
Entonces un registro, en ese mismo orden, estaría compuesto por estos datos:
001, Marcos, Viera, 18 de Julio 915, 29011414, marcos.viera@gmail.com

"001", corresponde a un registro parcial del campo "Número de cliente".
"Marcos", corresponde a un registro parcial del campo "Nombre".
"Viera", corresponde a un registro parcial del campo "Apellido".
"18 de Julio 915", corresponde a un registro parcial del campo "Dirección".
"29011414", corresponde a un registro parcial del campo "Teléfono".
"marcos.viera@gmail,com", corresponde a un registro parcial del campo "Correo electrónico".

"001", "Marcos", "Viera", "18 de Julio 915", "29011414", "marcos.viera@gmail.com", corresponde a todo un registro completo de la tabla "clientes".

- "Base de datos" es un archivo como cualquier otro, salvo que en lugar de encerrar fotogramas, texto formateado, música o vídeo, contiene únicamente datos compuestos por letras y números.
Una base de datos es un archivo del tipo mencionado (no tiene por qué tratarse de una base de datos de Access precisamente), y que tiene dimensiones no demasiado concretas.
Su tamaño cambia con el tiempo, por lo tanto, es de dimensiones dinámicas, nunca fijas.
Cada vez que creamos una base de datos en blanco, es como si le dijésemos al Sistema Operativo "Resérvame un espacio indefinido en el disco duro para ir volcándole datos de a poco".
Una base de datos, generalmente contiene varias tablas, las cuales, en gran cantidad de oportunidades, están vinculadas entre sí mediante algún o algunos campos.
Esto equivale a decir que una base de datos, generalmente no es una colección de tablas "muertas", puesto que están relacionadas entre sí de algún modo.
Esta relación se establece de forma manual. Access no puede construírla  automáticamente.


VIII. Complementos (2): MATERIAL MULTIMEDIA.

En el siguiente vídeo, se explica claramente todo esto que ha sido comentado arriba.
El mismo ha sido tomado de YouTube, y su URL es la siguiente:
Desde ya, se agradece el valioso aporte del autor del mismo ("asuareznet").


En el resto de los vídeos que siguen, se verán algunos aspectos ya trabajados en esta entrada, y habrá algunos nuevos aportes que serán complementarios.

Creación de bases de datos y tablas, gentileza del autor Otto Javier González.


Creación de informes, gentileza de aulaclic.


Creación de consultas, gentileza de aulaclic.


Creación de formularios, gentileza de cursomatica.


Introducción a las macros, gentileza del autor Otto Javier González.


Introducción a los "módulos" de Visual Basic for Applications (lenguaje de programación llamado "Visual Basic" adaptado para crear pequeñas pero potentes aplicaciones dentro de Excel y Access, por ejemplo).
Gentileza del autor: Víctor Hugo Ayala Cañedo.




IX. Complementos (3): funcionamiento de SQL.

Existe, en este mismo blog, una entrada especialmente dedicada a SQL.
Allí podrás aprender cómo hacer consultas directamente a la base de datos, sin pasar por Access, por ejemplo. También, verás cómo utilizar el motor SQL incorporado de Access.

Para leer dicho artículo, haz clic aquí.


X. Complementos (4): ejercicios resueltos SQL.

Puedes descargar una base de datos de prueba en formato Access 2007-2010 con 13 consultas SQL de distinto tipo ya resueltas.

Para ello haz clic aquí.

2 comentarios:

  1. Muchas gracias profe por la guía y la molestia. Salud!

    ResponderEliminar
    Respuestas
    1. De nada Julio, es un placer! Espero que sea de utilidad. Lástima que no tengo el tiempo que quisiera, para hacer mejores y más cuantiosos aportes...
      Salud!

      Eliminar