Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Poner en mayusculas la primera de cada palabra

900 views
Skip to first unread message

!00000

unread,
Apr 5, 2008, 6:52:12 PM4/5/08
to
En Excel existe la funcion =NOMPROPIO(B5) me gustaria algo parecido en el
access

* HE Buscado esto en el google pero si hay acentos o la ń FALLA
Sub Campo_AfterUpdate() 'Pone en mayuscula la primera letra de cada palabra
Dim CadenA as String
Dim ANSI as Variant
Dim Numero as Integer
CadenA = Lcase ([Campo] )
Mid ( CadenA, 1, 1 ) = Ucase ( Left ( CadenA, 1 ))
For Numero = 2 To Len ( CadenA ) -1
ANSI = Asc ( Mid ( Cadena, Numero,1) )
If ANSI < 65 Or ANSI > 122 Or ( ANSI > 90 And ANSI < 97 ) Then
Mid ( CadenA, Numero + 1, 1 ) = Ucase ( Mid ( Cadena, _ Numero
+1, 1) )
End If
Next Numero
[Campo] = Cadena
End Sub
****************************************************
Existe alguna función en access que realice esto

GRACIAS A TOD@S

--------------------------------------------------------------------------------
Estoy utilizando la versión gratuita de SPAMfighter para usuarios privados.
Ha eliminado 3 correos spam hasta la fecha.
Los abonados no tienen este mensaje en sus correos.
ĄPruebe SPAMfighter gratis ya!


Emilio

unread,
Apr 6, 2008, 3:35:29 AM4/6/08
to
--------------------------------------------------------------------------
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
Hola!
puedes usar por ejemplo una función como esta

'*******************************************************************************
'* PrimeraLetraMayusculas
'* convierte la primera letra de cada palabra a mayúsculas, excepto aquellas
'* palabras incluidas en la cadena excepciones
'* Argumentos: strCadena => cadena a convertir
'* uso: PrimeraLetraMayusculas "la primavera ha venido, nadie sabe como ha
sido"
'* ESH 05/08/07 20:29
'* Si utilizas este codigo, respeta la autoría y los créditos
'*******************************************************************************

Public Function PrimeraLetraMayusculas(strCadena As String) As String

Dim Matriz As Variant, _
i As Long, _
j As Long, _
strExcepciones As String, _
MatrizExcepciones As Variant

' aqui se pueden añadir o quitar cuantas excepciones se deseen controlar
strExcepciones =
"el,la,del,de,al,y,o,u,los,las,para,a,ante,bajo,con,contra,de,desde,en,entre,hacia,hasta,para,por,según,sin,so,sobre,tras"

' troceo las particulas en una matriz
MatrizExcepciones = Split(strExcepciones, ",")
' troceo la cadena en una matriz
Matriz = Split(Trim(strCadena), " ")

' recorro las distintas palabras a convertir
For i = 0 To UBound(Matriz)
' comparo cada palabra con las excepciones
For j = 0 To UBound(MatrizExcepciones)
' si la palabra es una excepción, pero es la primera palabra de la
cadena no hago nada
If MatrizExcepciones(j) = Matriz(i) And Not i = 0 Then GoTo Saltar
Next j
' si la palabra no es una excepción, concateno la primera letra en
mayúsculas con el resto de la palabra
Matriz(i) = StrConv(Matriz(i), vbProperCase)
Saltar:
Next i

' devuelvo la cadena convertida después de reconstruirla
PrimeraLetraMayusculas = Join(Matriz, " ")

End Function ' PrimeraLetraMayusculas

Saludos a tod@s

Emilio [MS-MVP Access 2006/8]
miliuco56 ALGARROBA hotmail.com
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio


"!00000" <erirom1...@teleline.es> escribió en el mensaje
news:uTAyu%232lIH...@TK2MSFTNGP06.phx.gbl...


> En Excel existe la funcion =NOMPROPIO(B5) me gustaria algo parecido en el
> access
>

> * HE Buscado esto en el google pero si hay acentos o la ñ FALLA


> Sub Campo_AfterUpdate() 'Pone en mayuscula la primera letra de cada
> palabra
> Dim CadenA as String
> Dim ANSI as Variant
> Dim Numero as Integer
> CadenA = Lcase ([Campo] )
> Mid ( CadenA, 1, 1 ) = Ucase ( Left ( CadenA, 1 ))
> For Numero = 2 To Len ( CadenA ) -1
> ANSI = Asc ( Mid ( Cadena, Numero,1) )
> If ANSI < 65 Or ANSI > 122 Or ( ANSI > 90 And ANSI < 97 ) Then
> Mid ( CadenA, Numero + 1, 1 ) = Ucase ( Mid ( Cadena, _ Numero
> +1, 1) )
> End If
> Next Numero
> [Campo] = Cadena
> End Sub
> ****************************************************
> Existe alguna función en access que realice esto
>
> GRACIAS A TOD@S
>
>
>
> --------------------------------------------------------------------------------
> Estoy utilizando la versión gratuita de SPAMfighter para usuarios
> privados.
> Ha eliminado 3 correos spam hasta la fecha.
> Los abonados no tienen este mensaje en sus correos.

> ¡Pruebe SPAMfighter gratis ya!
>
>


Chea

unread,
Apr 6, 2008, 5:12:09 AM4/6/08
to
En Access tienes strConv():

EnMayusculas = strconv(Micadena,vbpropercase)

--
Saludos

José Bengoechea Ibaceta [MS-MVP Access]
http://jbengoechea.com/
http://jbchea.net


"!00000" <erirom1...@teleline.es> escribió en el mensaje de noticias
news:uTAyu%232lIH...@TK2MSFTNGP06.phx.gbl...


> En Excel existe la funcion =NOMPROPIO(B5) me gustaria algo parecido en el
> access
>

> * HE Buscado esto en el google pero si hay acentos o la ñ FALLA


> Sub Campo_AfterUpdate() 'Pone en mayuscula la primera letra de cada
> palabra
> Dim CadenA as String
> Dim ANSI as Variant
> Dim Numero as Integer
> CadenA = Lcase ([Campo] )
> Mid ( CadenA, 1, 1 ) = Ucase ( Left ( CadenA, 1 ))
> For Numero = 2 To Len ( CadenA ) -1
> ANSI = Asc ( Mid ( Cadena, Numero,1) )
> If ANSI < 65 Or ANSI > 122 Or ( ANSI > 90 And ANSI < 97 ) Then
> Mid ( CadenA, Numero + 1, 1 ) = Ucase ( Mid ( Cadena, _ Numero
> +1, 1) )
> End If
> Next Numero
> [Campo] = Cadena
> End Sub
> ****************************************************
> Existe alguna función en access que realice esto
>
> GRACIAS A TOD@S
>
>
>
> --------------------------------------------------------------------------------
> Estoy utilizando la versión gratuita de SPAMfighter para usuarios
> privados.
> Ha eliminado 3 correos spam hasta la fecha.
> Los abonados no tienen este mensaje en sus correos.

> ¡Pruebe SPAMfighter gratis ya!
>
>

oddere...@gmail.com

unread,
Dec 8, 2018, 6:55:54 PM12/8/18
to
Prueba con la función ConvCadena

https://support.office.com/es-es/article/convcadena-función-19c3816f-dbc9-4adf-891c-fd32734c92e0

0 new messages