Recursos Humanos > Formación del PAS > Aula virtual > Microsoft Access > Tutorial: Consultas con nombre propio.

Tutorial: Consultas con nombre propio.

Quien trabaje a menudo con una base de datos que contiene un listado de nombres de personas se las habrá visto negras más de una vez con el tema: "nombre y apellidos", y con el tema: "apellidos,nombres". Todo esto se puede realizar con consultas de una forma muy sencilla, veamos los tres casos más habituales que se nos pueden presentar:

Tenemos un campo con el nombre y otro con el apellido

Este sería el caso ideal pues las consultas son más sencillas.

Si queremos obtener un nuevo campo que contenga el nombre y el apellido juntos sólo tenemos que utilizar la siguiente expresión en una consulta:
Nombre y Apellidos: Nombre + " " + Apellidos

Tendremos algo así:

Al ejecutar esta consulta obtenemos algo parecido a esto:

Aprovechando que esta es una de las expresiones más sencillas que vamos a ver, la examinaremos paso a paso. Lo primero que encontramos en la expresión es un alias, este será el nombre que va a recibir esta columna cuando se muestre el resultado de la consulta. Los dos puntos que vienen a continuación separan el alias del resto de la consulta. A continuación llamamos al campo "NOMBRE", le agregamos un espacio (+ " ") y le agregamos el campo "APELLIDO" (+ APELLIDO).

Os dejo como ejercicio el generar una expresión que nos muestre los datos con la estructura: "Apellidos, Nombre". Fácil, ¿no?

Tenemos un campo con la estructura "Apellidos, Nombre"

En este caso podríamos separar el campo en dos: "nombre", "apellidos" o podríamos visualizar los datos directamente como "Nombre Apellidos" sin tocar la tabla original.

Veámos primero una consulta para separar el campo en dos. Lo primero que tenemos que hacer es acceder a la Vista Diseño de la tabla y crear dos nuevos campos: "NOMBRE" y "APELLIDOS".

A continuación creamos una nueva consulta, desde la Vista Diseño agregamos la tabla "personal", hacemos clic en "Consulta/Consulta de actualización", de la tabla personal seleccionamos el campo "NOMBRE" y en la casilla "Actualizar a" tecleamos la siguiente expresión :
Medio([nombre completo];EnCad([nombre completo];",")+1)

Ahora seleccionamos el campo "APELLIDOS" y tecleamos:
Izq([nombre completo];EnCad([nombre completo];",")-1)

Esto ya parece chino pero no os asusteis demasiado, sólo hemos usado tres funciones de Access.

La función Medio nos devuelve un fragmento de una cadena alfanumérica, tenemos que indicarle donde empezamos y la longitud del fragmento que queremos, en nuestro caso la cadena sería el campo "NOMBRE COMPLETO", el comienzo viene calculado por la expresión EnCad([nombre completo];",")+1 y la longitud no necesitamos indicarla porque queremos llegar hasta el final del campo.

La función EnCad nos devuelve la posición de un carácter (o de una cadena de caracteres) dentro de otra cadena, con esto lo que hacemos es mirar donde está la coma que separa los apellidos del nombre para saber donde tenemos que cortar, luego sumamos un uno para que no salga la coma.

En la segunda expresión utilizamos la función Izq, ésta es parecida a la función Medio pero nos devuelve un fragmento de una cadena desde el inicio hasta la posición que le indiquemos, en este caso la cadena es el campo "NOMBRE COMPLETO" que ponemos entre corchetes "[]" y la posición o longitud viene calculada de nuevo por la expresión EnCad([nombre completo];",")-1. Luego restamos uno para que no salga la coma.

La consulta debe aparecer así:

Veámos ahora una consulta en la que a partir de "Apellidos, Nombre" obtenemos directamente "Nombre Apellidos".

Partimos de una tabla similar a la que se muestra en la figura

Creamos una consulta nueva, desde la Vista Diseño agregamos la tabla "personal" a la consulta y tecleamos la siguiente expresión:
nombre_apellidos: Medio([nombre completo];EnCad([nombre completo];",")+1) + " " + Izq([nombre completo];EnCad([nombre completo];",")-1)

Aquí tenemos una vista de la consulta:

Obtendremos un resultado similar a este:

Tenemos un sólo campo con la estructura "Nombre Apellidos"

Mala cosa, en este caso tendremos que utilizar los datos tal como vienen porque no hay ninguna consulta que pueda distinguir donde acaba un nombre o donde empieza un apellido.

Servicio de Formación y Desarrollo del PAS
Dirección de Recursos Humanos
Universidad de Sevilla