Access - Extraer caracteres

 
Vista:

Extraer caracteres

Publicado por Natalia (2 intervenciones) el 21/10/2005 15:54:12
Hola! Tengo una columna en access que contiene el nombre y apellido de una persona, y están separados por una coma, quisiera saber como se puede hacer para extraer sólo el apellido o sólo el nombre... el formato sería: PEREZ, JUAN... y yo quiero por un lado PEREZ y por el otro JUAN... espero que se entienda lo que quiero decir! graciassssssss
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Extraer caracteres

Publicado por Carlos Andrés (18 intervenciones) el 21/10/2005 16:56:08
Natalia:

Cordial saludo.
No especificas si quieres hacerlo en una consulta o por código VB.
Para ambos, aplica el mismo principio:
Debes hacer uso de unas funciones estándar que tiene Access para manejo de cadenas de caracteres.

En una consulta:
EnCad : Devuelve un tipo Variant (Long) que especifica la posición de la primera aparición de una cadena en otra.
Izq : Devuelve un tipo Variant (String) que contiene un número especificado de caracteres del lado izquierdo de una cadena.
Len : Devuelve un tipo Long que contiene el número de caracteres en una cadena o el número de bytes necesarios para almacenar una variable.

Investiga un poco más dichas funciones.
Puedes buscar su equivalente en VB.

Una manera para sacar el apellido (la verdad no creo que halla otra con dichas funciones) podría ser:

Apellido = Izq(NombreCompleto,Len(NombreCompleto)-EnCad(1,NombreCompleto,','))

Te queda de tarea sacar el nombre.

Espero te servia mi aporte.

Carlos Andrés
Escribeme a [email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Extraer caracteres

Publicado por 2pl (773 intervenciones) el 21/10/2005 19:44:57
Aqui tienes tres funciones que extraeN de un campo (de longitud 35 en este caso) y que contiene APELLIDOS Y NOMBRE en el formato (PEREZ PEREZ, ANTONIO)
En tu consulta pondrias
Nombre:SoloNombre([campo apellidos y nombre])
1APELLIDO:Apellido1([campo apellidos y nombre])
2APELLIDO:Apellido2([campo apellidos y nombre])
En tu caso si solo tienes un apellido, utilizas apellido2
Saludos desde Cádiz y espero te valga.

Function SOLONOMBRE(ApeNom As String) As String
Dim CAMPO As String
Dim l As Double
l = 0
For i = 35 To 1 Step -1
l = l + 1
If Mid(ApeNom, i, 1) = "," Then
CAMPO = Mid(ApeNom, i + 2, l - 1)
Exit For
End If
Next i
SOLONOMBRE = CAMPO

End Function

End Function
Function Apellido1(ApeNom As String) As String
Dim CAMPO As String
Dim l As Double
For i = 35 To 1 Step -1
If Mid(ApeNom, i, 1) = "," Then
For n = i - 1 To 1 Step -1
If Mid(ApeNom, n, 1) = " " Then
CAMPO = Mid(ApeNom, 1, n - 1)
Exit For
End If
Next n
Exit For
End If
Next i
Apellido1 = CAMPO

End Function

Function Apellido2(ApeNom As String) As String
Dim CAMPO As String
Dim l As Double
l = 0
n = 0
For i = 35 To 1 Step -1
If Mid(ApeNom, i, 1) = "," Then
For n = i - 1 To 1 Step -1
l = l + 1
If Mid(ApeNom, n, 1) = " " Then
CAMPO = Mid(ApeNom, n + 1, l - 1)
Exit For
End If
Next n
Exit For
End If
Next i
Apellido2 = CAMPO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Extraer caracteres

Publicado por Natalia (2 intervenciones) el 25/10/2005 15:27:01
Buenas!!!!!! Gracias por su ayuda... pero se puede hacer usando la función split... o por lo menos funciona!! gracias!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Extraer caracteres

Publicado por Juan Amorós (489 intervenciones) el 25/10/2005 19:39:31
Hola Natalia:
La función que te ha explicado 2pl es totalmente correcta, pero para "no depender" del número de caracteres, puedes averiguarlos, previamente, con la instrucción len().
Saludos
Juan Amorós
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar