Curso de Access Aplicaciones

Consultas de varias tablas

En Access, es posible realizar consultas involucrando campos de varias tablas, de modo que el resultado de la consulta muestre información procedente de todas ellas. Para que una consulta pueda realizarse sobre campos de varias tablas, éstas deben tener un campo común, y las tablas deberán estar relacionadas por esos campos. Si no se hubieran establecido las relaciones anteriormente, habría que establecerlas en este momento (en la propia consulta), ya que si no existen relaciones entre las tablas, Access no encontrará relación entre los campos especificados en la ventana de diseño y no mostrará ningún registro como resultado de la consulta.

Una vez establecidas las relaciones entre las tablas el modo de generar una consulta de varias tablas es similar a la de creación de cualquier otra consulta, sin más que "subir" a la parte superior de la consulta las tablas necesarias (varias en lugar de una sola), y "bajar" los campos a incluir en la consulta desde cada correspondiente tabla en la que se encuentren.


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Access Aplicaciones y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Mas ejemplos de tablas relacionadas

Ejemplo-1: Supongamos que en la federación de golf (siguiendo con el ejemplo de la base de datos Socios del Club) se ha asignado un responsable tutor por cada uno de los niveles de juego de forma que a cada jugador le pasa a corresponder un responsable deportivo en virtud de si su nivel de juego es principiante, medio o senior. Dicho tutor, tiene unos datos que lo identifican, tales como son su nombre, apellidos, teléfono de contacto, fax, dirección de e-mail, dirección de oficina...Sería preciso que en el registro de cada socio se dispusiera de toda la información de su tutor o responsable deportivo.

Tras un análisis de la nueva situación, se deduce que si en la tabla socios agregamos tantos campos como para albergar la información de dichos tutores, a todos los socios con el mismo nivel de juego, les va a corresponder el mismo tutor, con lo que todos los datos del tutor estarían repetidos de forma masiva y redundante en la tabla socios (ocupando mucho espacio y lentificando el proceso básicamente). Quizás la mejor solución sea, en este caso, definir otra tabla llamada Tutores, en la que deberá existir un registro para cada nivel de juego y por lo tanto para cada tutor. La estructura de la tabla sería la siguiente:

Se introducirán los datos de los niveles junto a sus responsables...

Pero, ¿De que manera podríamos enlazar o relacionar esta nueva tabla de tutores con la gran tabla de socios?

Será necesario relacionar el nivel de juego de cada socio de la tabla de socios con en codigo de nivel de la tabla de tutores. Pero como son de distinto tipo (texto -en socios- frente a numérico -en tutores-) no se podrá. La solución es sustituir en la tabla de socios el campo nivel por el campo codnivel (por ejemplo) de tipo  numérico y luego colocar a cada socio un código (el que corresponde a su nivel de juego) en este campo de acuerdo a los niveles y tutores introducidos en la tabla de tutores (1, 2 o 3).

1.- Se deberá crear en la tabla de socios el campo codnivel.

2.- Mediante tres consultas de actualización, a aquellos que tengan nivel de juego principiante, actualizaremos ese nuevo campo codnivel (de la tabla de socios) a 1. De igual manera, los socios con nivel senior actualizaremos a 2 su campo codnivel. Y a 3 el campo codnivel de los socios con nivel senior.

3.- A continuación deberemos (de forma recomendada, aunque en este ejemplo no lo borremos) eliminar el campo nivel de la tabla socios ya que, a partir de ahora, se conocerá el nivel de juego gracias a un código en la tabla de socios, que se corresponderá con uno de los niveles y tutores de la tabla tutores.

4.- Ahora tendremos que establecer la relación (en la pantalla de relaciones) de acuerdo a la siguiente pantalla:

A partir de este momento, podríamos crear consultas, formularios e informes en donde aparecen ambas tablas implicadas, eso si, previamente relacionadas.

Ejemplo-2: Supongamos un ejemplo superficial de gestión de sanciones de tráfico en una localidad. Existen diferentes tipos de sanción (tipos de multa), diferentes guardias o agentes, los vehículos, los cuales pertenecen a un ciudadano o propietario, y... por supuesto sanciones. Las sanciones las "pone" un agente a un vehículo, un determinado día, a una hora, en un lugar, y esa infracción es de un determinado tipo de entre las que se pueden sancionar. Un ciudadano puede tener mas de un vehículo.

La información habrá que disgregarla en diferentes tablas, (la de vehículos se supone que la facilita tráfico con todos los vehículos), que deberán estar... Relacionadas. La siguiente imagen muestra un posible planteamiento.


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Access Aplicaciones y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Si desea obtener un acceso sin restricciones a los contenidos del curso de Access Aplicaciones y disfrutar de todas las herramientas del aula virtual (Videos explicativos streaming, acceso a los foros, chat, ejercicios resueltos, la ayuda del tutor, audioconferencia, estudio de grabación, test y actividades de autoevaluación, etc...) puede inscribirse completamente gratis y comenzar a realizar de forma inmediata el curso.