Access - Rescatar primeras letras

   
Vista:

Rescatar primeras letras

Publicado por marcos (68 intervenciones) el 06/03/2008 17:47:25
Hola a todos.
En una consulta tengo un campo con el Nombre y Apellido de personas.
Necesito rescatar las primeras letras del nombre y del apellido para dejarlo en otro campo que será calculado.
Ejemplo:
Nelson Parraguez, el campo calculado debe mostrar NP.
Se puede hacer esto ??

La idea es no separar en un campo el nombre y en otra el apellido, porque tendría modificar toda la BD y ya está grande.

Gracias.
Marcos R
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:Rescatar primeras letras

Publicado por elias (405 intervenciones) el 06/03/2008 18:05:19
Expr1: Izq([nombre];1) & Izq([apellido];1)
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:Rescatar primeras letras

Publicado por Enrique (1299 intervenciones) el 06/03/2008 19:02:20
Hola Marcos:
Lo que indica Elias valdría si Nombre está en un Campo y Apellido en otro, pero si ambos están en el mismo campo, es algo más complicado. Suponiendo que el Campo que contiene Nombre y Apellido se llamara, "Personas" y el Campo Calculado quieres que se llame "Siglas", tienes que poner esto:

Siglas: Izq(Medio([Personas];1;EnCad(1;[Personas];" ")-1);1) & Izq(Medio([Personas];EnCad(1;[Personas];" ")+1);1)

Prueba ahora.

Saludos
Enrique
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:Rescatar primeras letras

Publicado por Yair Escudero (44 intervenciones) el 06/03/2008 19:00:02
Hola marcos

La verdad lo que pides es algo complejo y a menos de que todos los nombres sean de dos palabras como tu ejemplo la funcion tendria que averiguar donde comienza cada palabra, para luego obtener la primera letra, el tema esta en la primera pregunta es decir donde comienza cada palabra.

Ojo no digo que no se pueda, solo que segun lo que explicas es muy compleja.
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:Para Enrique ...Rescatar primeras letras

Publicado por marcos (68 intervenciones) el 06/03/2008 20:06:12
Enrique, intenté con lo que me indicaste, pero me da un error de sintaxis y se detiene el cursor en el campo nombre que encierra la funcion EnCad.

Siglas: Izq(Medio([Nombre];1;EnCad(1;[Nombre];" ")-1);1) & Izq(Medio([Nombre];EnCad(1;[Nombre];" ")+1);1)

Alguna idea ??
Gracias por tu tiempo.
Marcos R.
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:Para Enrique ...Rescatar primeras letras

Publicado por Enrique (1299 intervenciones) el 06/03/2008 20:27:12
Pues eso está probado y funciona en Access 2000 y 2003 en Español, si tu Access está en Inglés, EnCad lo sustituyes por InStr, Medio por Mid, Izq por Left y los delimitadores punto y coma ( ; ) en algunas configuraciones son coma ( , )

Prueba a ver porque te aseguro que funciona, aunque solo si hay dos palabras, sean de la longitud que sean.

Saludos
Enrique
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:Para Enrique ...Rescatar primeras letras

Publicado por marcos (68 intervenciones) el 06/03/2008 21:10:59
Enrique.

Mi Acces es 2003 y en español y acepta comas. El campo sólo tiene dos palabras. Ejemplo Luis Perez

Pero no se por qué ahora me da el siguiente error: "La expresión que introdujo tiene un número no valido" y se posiciona en el primer nro 1 y la coma siguiente de la expresión

Siglas: Izq(Medio([Nombre],1,EnCad(1;[Nombre]," ")-1),1) & Izq(Medio([Nombre],EnCad(1,[Nombre]," ")+1),1)

Gracias por tu tiempo nuevamente.
Marcos
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:Para Enrique ...Rescatar primeras letras

Publicado por Enrique (1299 intervenciones) el 06/03/2008 22:05:04
Marcos:
O son todo comas o todo puntos y comas, pero veo que en la linea que has pegado, casi todo son comas excepto un punto y coma, antes de la segunda aparición de Nombre, así evidentemente no puede funcionarte. Comprueba en el Panel de Control, Configuracion regional y de idioma, pestaña Opciones regionales, botón Personalizar, lo que tienes puesto en "Separador de Listas", mira si es coma o punto y coma.

De todas formas prueba este ejemplo:

http://es.geocities.com/ensolva/Descargas/Varios/ExtraerSiglasNombres.zip

Saludos
Enrique
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:Para Enrique ...Rescatar primeras letras

Publicado por marcos (68 intervenciones) el 06/03/2008 22:32:45
Gracias, abrí el archivo que enviaste y funciona perfectamente.
Lo curioso es que copio el codigo en la consulta que estoy trabajando y me entrega el mismo error.
Voy a apagar el PC, me voy a ir a dar una vuelta y volveré a sentarme en frente de mi PC. (jajajaja).

Lo cierto es que funciona perfectamente y créeme que como decía alguien por ahí, pensé que no se podía.
Gracias Enrique.
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:Para Enrique ...Rescatar primeras letras

Publicado por mi menda (1111 intervenciones) el 07/03/2008 12:47:13
Hola Marcos:
Otra forma podria ser esta:

Dim strPalabras As Variant, i As Integer

strPalabras = Split(CampoNombre," ")

For i = 0 To UBound(strPalabras)
CampoSiglas =CampoSiglas & Left(strPalabras(i),1)
Next i

Te comento esta forma como curiosidad, porque de esta forma podriamos sacar la primera letra de cada palabra, independientemente de la cantidad de palabras que haya en un campo.

Un Saludo
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:Para Enrique ...Rescatar primeras letras

Publicado por marcos (68 intervenciones) el 07/03/2008 14:26:24
Extraordinario !!!!
Gracias mi menda, agruegué en la tabla que se basa la consulta un campo con el nombre siglas y adapté tu código. Luego en el formulario en el evento al cargar puse tu código y funciona perfectamente.

Debo decir también que lo que había ofrecido Enrique también me funcionó, cambié los nombres de las funciones a inglés y funcionó perfectamente. (pensaba que mi acces aceptaba funciones en español y no era así).

A fin de cuentas en verdad estoy sorprendido por el nivel de conocimientos que Ustedes tienen. Yo trabajo hace 2 años con access y no paro de sorprenderme por el nivel de los expertos que nos ayudan en este foro.

Gracias a todos.
Marcos R.
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