Si todos los de la lista tienen solo tres elementos (nombre, apellido1,
apellido2) entonces puedes usar la funcion InStr():
Public Sub SepararNombre(strNombre as String)
Dim sS1 as String
Dim sS2 as String
Dim sS3 as String
Dim int1 as Integer
int1 = InStr(strNombre, " ")
sS1 = Left(strNombre,int1-1)
strNombre = Mid(strNombre,int1)
int1 = InStr(strNombre, " ")
sS2 = Left(strNombre,int1-1)
strNombre = Mid(strNombre,int1)
sS3 = strNombre
' ahora tienes los tres elementos en sS1, sS2, y sS3 donde puedes
insertarlos en una tabla normal
El problema es que estas listas generalmente vienen con iniciales o segundos
nombres, etc.
Si manualmente puedes recorrer la lista y asegurarte (quitar el espacio
entre nombres compuestos: Juan Antonio Perez Martinez convertirlo en
Juan_Antonio Perez Martinez, entonces te funcionará.)
Carlos A Ramirez Mercado --> Carlos_A Ramirez Mercado
Si la lista es de miles, puedes hacer una funcion donde detectas si existen
mas de tres espacios, que el primer espacio lo convierta en 'subrayado'.
Por ejemplo:
Dim iContador as Integer
Dim iEspacios as Integer
' aqui cuentas los espacios:
Revisar_De_Nuevo:
iEspacios = 0
For iContador = 1 to Len(strNombre)
If Mid(strNombre, iContador, 1) = " " Then
iEspacios = iEspacios + 1
End If
Next
If iEspacios > 2 Then
Mid(strNombre, InStr(strNombre," "),1) = "_"
' como precaucion de haber mas de 4 espacios, sigue revisando:
Goto Revisar_De_Nuevo
End If
Esto convierte a Juan A. J. Mercado Garcia en Juan_A._J. Mercado Garcia
Analiza y ve... esto de jugar con cadenas es divertido!!
--
Victor Delgadillo [MVP Access]
Miami, Florida
Consultas al grupo, asi todos nos beneficiamos.
Vea los MVP: http://www.microsoft.com/communities/mvp/mvp.mspx
Post by AlexOk, la lista es en una tabla de access, que solo tiene un campo que se
llama nombre. El tipo de campo es text, cada nombre esta separado nadamas
por un espacio, no tiene comas ni nada por el estilo. Por decir, si en un
campo viene Juan Perez Gonzalez, me gustaria separar esta informacion a tres
campos, una que contenga la palabra Juan, el siguiente, la palabra Perez, y
el ultimo campo la Palabra Gonzalez... Si todavia no me explico diganme.
Encontre como parsear, pero no lo puedo hacer que se ponga en una tabla...