Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/02/2005, 08:57
Avatar de 3pies
3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 21 años, 5 meses
Puntos: 144
Mensaje Función que me tiene atascado...

Hola a todos...

Tengo una función que lo que hace es poner en mayúsculas la inicial de una palabra o varias palabras (está pensada para recuperar el nombre y apellidos de un campo de la BD). Bueno, la función que tengo es esta:
Código:
    Function InicialEnMayusculas(cadena)
    'Descomponemos la cadena, en subcadenas,
    'para lo cual indicamos el delimitador " "
    cadena = Split(Trim(cadena), " ")
    'miramos las palabras que componen la cadena,
    'para lo cual le decimos que recorra desde el primer
    'valor de la matriz, hasta el último
    For i = 0 To UBound(cadena)
        'ponemos la inicial en mayúsculas, y el resto en minúsculas
        cadena(i) = UCase(Left(cadena(i), 1)) & LCase(Right(cadena(i), Len(cadena(i)) - 1))
    Next
    'Unimos las cadenas
    cadena = Join(cadena)
    InicialEnMayusculas=cadena
end function
Aparentemente funciona, pues si tengo en la BD

Código:
pepito pérez
Me mostrará: Pepito Pérez

Pero si tengo
Código:
pepito    pérez
Me da error, puesto que entre "pepito" y "pérez", hay más de un espacio en blanco. El error de la función me viene cuando has más de un espacio entre dos palabras.

¿Alguien me echa una mano?. Estoy atascado desde hace más de 2 horas, pues todo lo que pruebo no me funciona.

Gracias por vuestra colaboración.