Cómo pasar apellidos, nombre a Nombre y apellidos en access

Lo que quiero hacer es algo parecido a lo que se hace en Excel con lo de texto en columnas con un delimitador (, en este caso) pero en vez de ponerlo en varios campos que sea en el mismo. Pretendo a través de una consulta mismamente separar los campos y volverlos a unir sin coma. Resumiendo:

Pérez Pérez, José

Pasarlo a:

José Pérez Pérez

2 respuestas

Respuesta
2

No te voy a dar la solución, sino unas pistas para que lo consigas tu mismo:

Con la función Instr() puedes averiguar en qué posición está una cadena o caracter, en tu caso la coma.

Con las funciones Left() y Right() puedes extraer x caracteres a izquierda o derecho de una cadena (el valor de tu campo)

Con la función Len() sabes el total de caracteres de una cadena.

Combinando estas funciones, es muy sencillo lograr el resultado que esperas.

Andrés, si ves que no lo consigues, coméntalo y te doy la solución...😀

¡Gracias! 

Lo intentaré

Acabé de hacer los deberes aunque me imagino que no bien del todo ;). El resultado en principio es correcto aunque igual se puede abreviar algo. Lo pongo aquí para que me lo corrija Sveinbjorn El Rojo:

Partiendo de las funciones que me dijo Sveinbjorn en una consulta cree los siguientes campos:

TotalCaracteres: Longitud([Socio]) 
'Para saber el número total de caracteres del campo socio
PuestoCaracter: EnCad([socio];",")
'Para conocer el puesto que ocupa el carácter en este caso la coma
Apellidos: Izq([socio];[puestoCaracter]-1)
'Para que me seleccione todos los caracteres a la izquierda de la coma y tener sólo los apellidos.
Nombre: Der([socio];[totalCaracteres]-[puestoCaracter]-1)
'Para que me seleccione todos los caracteres empezando por la derecha hasta llegar a la coma y tener sólo el nombre.
NombreCompleto: [nombre] & " " & [apellidos]
'Para unir el nombre y apellidos con un espacio entre los dos

Si lo quieres hacer en un solo paso:

NombreCompleto: Der$([Socio];Longitud([Socio])-EnCad([Socio];",")-1) & " " & Izq$(Socio];EnCad([Socio];",")-1)
Respuesta
1

Prueba con esta función:

Observe que en la ventana de inmediato pruebo con mis apellidos y nombre "PEREZ FERNANDEZ, EDUARDO" y la función retorna EDUARDO PEREZ FERNANDEZ sin la coma, si quiere separar el nombre con la coma reemplace el espacio final de la variable strTexto por "," así obtendrá EDUARDO, PEREZ FERNADEZ.

Espero complementar la respuesta que le dan y que le sirva.

Le suministro una función más completa, consta de 2 parámetros, el segundo es opcional:

Ejemplos de llamadas a la función:

Observe el último ejemplo que NO tiene el segundo parámetro.

Atendiendo a los usuarios que me han escrito al correo incluyo una tercera versión de la función mucho más completa, toda vez, que permite elegir el carácter se separación.

Estos son algunos ejemplos de llamada a la función:

Observe que son cuatro (4) parámetros pero los dos (2) últimos son opcionales.

Los usuarios interesados pueden solicitar la función a [email protected] haciendo referencia en el "Asunto" a "Quiero la función invierte apellidos y nombre".

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas