Separar en una tabla access registros

Tengo una tabla en la cual unos de los campos apellido, en el mismo tengo todo junto apellido, nombre, nombre, nombre, nombre, osea el apellido y cuatro nombres segun las nacionalidades que sea la persona.

Necesito obtener un registro que quede el apellido y otros por cada nombre que tenga las personas con un maximo de cuatro nombres mas el apellido.

Ejemplo: apellido y nombre : MORAN ACOSTA CEFERINO AUGUSTO DAMIAN ( en este caso el apellido es compuesto MORAN ACOSTA, ceferino augusto ( nombres)

Ejemplo 2: apellido y nombre: ACOSTA AUGUSTO JUAN ELIAS

ACOSTA (apellido) augusto juan elias (nombres)

El diseño tendria que ser apellido, nombre1, nombre2, nombre3, nombre4.-

1 respuesta

Respuesta
1

Estaba esperando a ver si alguien te contestaba, pero veo que eso no sucede.

Entiendo que nadie te contesta porque lo que pides, en puridad, no puede hacerse así como lo planteas.

Vamos a ver... Si yo te digo: sepárame este valor en apellidos y nombre:

Spedihnorm Abdicabetur Roprostov Epicajrn Rupulus

¿Qué me contestas?

La respuesta lógica es que me digas que no puedes hacerlo, porque el apellido, ¿es Spedihnorm? ¿O es Spedihnorm Abdicabetur? ¿O puede que sea también Spedihnorm Abdicabetur Roprostov?

Y, si tú no sabes darme una respuesta, ¿cómo quieres que Access pueda saberlo?

Y si yo te digo que en ese nombre los dos primeros elementos son el apellido, ¿a qué sí me puedes dar una respuesta? Pues si se lo indicas a Access, la aplicación también podrá darte una respuesta.

Por otra parte, independientemente de lo anterior, programar un código para hacer lo que pides es un auténtico latazo que requiere mucho tiempo (de programación y de testeo, puesto que siempre te equivocas por una letra de más o de menos y tienes que corregir el código cada vez). Como mucho puedo indicarte que eches un vistazo a este ejemplo, bastante más sencillo, que lleva una de las posibles sistemáticas para tratar el tema: http://www.mediafire.com/download/ha63arok6z6gmwe/JorgeChavez-ExtraerNombre.zip

La esencia es ir controlando los espacios en blanco que te vayas encontrando e ir construyéndote las cadenas de caracteres, controlando que no hayas llegado al final del texto.

Si no requiriera tanto tiempo te lo programaba (suponiendo arreglado el tema de poder saber cuáles son los apellidos), pero no tengo tiempo para eso. Tendrás que espabilarte tú solo.

Ya que estamos...

Otra sistemática para obtener los elementos podría ser el uso de matrices combinado con el uso de la función split. Te pongo un ejemplo:
...

Sub...
Const v = "PEREZ LOPEZ ANTONIO"
Dim i As long
Dim cadena() As string
cadena = split(v, " ")
For i = 0 to UBound(cadena)
Debug.print cadena(i)
Next i

End sub

---

En la ventana inmediato deberían aparecerte los tres valores "PEREZ/LOPEZ/ANTONIO" (la barra sería un salto de línea).

A partir de ahí ya podrías operar con ellos con el código que quieras, manejando su índice en la matriz.

¡Gracias! Ok este sirve es probable que me agregues a este ejemplo dos columnas más, osea que separe más nombre en vez de dos que se cuatro.

Por otra parte veo si entendí bien es que el problema es en el apellido compuesto, ¡¿?

En definitiva si podes agregarme dos columnas más a tu ejemplo seria bárbaro, con eso me arreglo

Gracias

En fin... Creo que lo ideal sería que aprendierais a hacerlo vosotros mismos a partir de las bases que os proporcionamos porque si no siempre vais a estar dependiendo de otros. Como diría mi buen amigo Horus, "si vas a dar de comer no des un pez: enseña a pescar".

De todas maneras reconozco que este (el de separar los nombres) es un tema relativamente complejo si no tienes bien claros los conceptos de programación y de sistemática de código.

Ahí tienes una posible manera de hacerlo: http://www.mediafire.com/download/6s777m59wd8x6w1/JRuben.SepararNombres.rar 

¡Gracias! Ok mil gracias, intento viendo el código de amprender al más todo los días, pero aveces por el tiempo no me es posible, pero lo intento, nuevamente mil gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas