Separar un campo en dos (Nombres Apellidos)

Dudas sobre código
Avatar de Usuario
bryger
Nivel 5
Mensajes: 168
Registrado: Mié Jul 06, 2016 12:24 pm

Separar un campo en dos (Nombres Apellidos)

Mensajepor bryger » Mar Jun 04, 2019 10:53 pm

Buenas tardes Sres, tengo una consulta
manejo una tabla con un campo= [Nombres y Apellidos]
en esa tabla tengo muchos registros, y ahora la escuela me solicita separar ese campo en un formulario que se vean en dos campo
uno para: [Nombres]
otro:[Apellido_Paterno]
otro:[Apellido_Materno]

por ejemplo: alumno en la tabla y campo [Nombres y Apellidos] al hacer click en un boton del form,ulario solo requiero que me los muestre en tres campos del formulario sin origen
uno para: [Nombres]
otro:[Apellido_Paterno]
otro:[Apellido_Materno]
existira algun codigo que me los separe segun el espacio dentro del campo al completar cada oracion

CARLO[ESPACIO]JOSE[ESPACIO]RODRIGUEZ[ESPACIO]ESPAÑA

Jilo
Nivel 2
Mensajes: 25
Registrado: Mié Dic 02, 2015 11:05 am

Re: Separar un campo en dos (Nombres Apellidos)

Mensajepor Jilo » Mié Jun 05, 2019 5:31 pm

Hola Byger,
Me ima gino que habrá nombres tal que así:
Jose De Carlos Garcia
Jose Ignacio Garcia de Carlos
....
Automatizar la separación y para el 100% de los registros es misión imposible. Pero se puede apañar para la casi totalidad de los registros.
De dejo una funcion que le pasas el nombre y apellidos como argumento y te devuelve una cadena, separados por comas el nombre y los apellidos. Se puede mejorar para que cumpla con mas casos pero eso lo tiene que hacer el que tiene acceso a todos los registros.
Pega la función en un modulo independiente, por si lo tienes que usar en mas formularios.

Código: Seleccionar todo

Function SeparaNombreYApellidos(NyAp As String) As String
   Dim MArray
      MArray = Split(NyAp, " ")
      If UBound(MArray) > 2 Then
         If Len(MArray(1)) = 2 Then
            SeparaNombreYApellidos = MArray(0) & "," & MArray(1) & " " & MArray(2) & "," & MArray(3)
         Else
            SeparaNombreYApellidos = MArray(0) & " " & MArray(1) & "," & MArray(2) & "," & MArray(3)
         End If
      Else
            SeparaNombreYApellidos = MArray(0) & "," & MArray(1) & "," & MArray(2)
      End If
      Debug.Print SeparaNombreYApellidos
End Function
'CARLO JOSE RODRIGUEZ ESPAÑA


Y lo puedes llamar desde donde quieras
......
dim Cadena as string
Cadena=split(SeparaNombreYApellidos( [Nombres y Apellidos] ) ,",")
[Nombres]=Cadena(0)
[Apellido_Paterno]=Cadena(1)
[Apellido_Materno] =Cadena(2)
........

Avatar de Usuario
bryger
Nivel 5
Mensajes: 168
Registrado: Mié Jul 06, 2016 12:24 pm

Re: Separar un campo en dos (Nombres Apellidos)

Mensajepor bryger » Mié Jun 05, 2019 11:31 pm

Hola amigo gracias por tu ayuda, me sale un error extraño
Aqui

Código: Seleccionar todo

[Nombres] = Cadena(0)
Adjuntos
error_matriz.png

Avatar de Usuario
Fayad
Colaborador
Mensajes: 328
Registrado: Mié Oct 28, 2015 9:43 pm

Re: Separar un campo en dos (Nombres Apellidos)

Mensajepor Fayad » Jue Jun 06, 2019 5:52 pm

Hola!

cambia la variable Cadena a Variant

Código: Seleccionar todo

Dim Cadena As Variant
Cadena=split(SeparaNombreYApellidos( [Nombres y Apellidos] ) ,",")
[Nombres]=Cadena(0)
[Apellido_Paterno]=Cadena(1)
[Apellido_Materno] =Cadena(2
Salu2.

Jilo
Nivel 2
Mensajes: 25
Registrado: Mié Dic 02, 2015 11:05 am

Re: Separar un campo en dos (Nombres Apellidos)

Mensajepor Jilo » Jue Jun 06, 2019 6:06 pm

Así es !!!
Gracias Fayad

SAludos

Avatar de Usuario
Sveinbjorn
Moderador
Mensajes: 1073
Registrado: Sab Oct 24, 2015 10:12 pm

Re: Separar un campo en dos (Nombres Apellidos)

Mensajepor Sveinbjorn » Jue Jun 06, 2019 6:45 pm

También valdría declararla como matriz:
Dim cadena() As String

Un saludo!
Sveinbjorn El Rojo

Avatar de Usuario
bryger
Nivel 5
Mensajes: 168
Registrado: Mié Jul 06, 2016 12:24 pm

Re: Separar un campo en dos (Nombres Apellidos)

Mensajepor bryger » Vie Jun 07, 2019 12:02 am

Gracias muchas gracias
Jilo
Fayad
Sveinbjorn

RESUELTO...................


Volver a “Código VBA”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados