Discussion:
Poner en mayusculas la primera de cada palabra
(demasiado antiguo para responder)
!00000
2008-04-05 22:52:12 UTC
Permalink
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 ***@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
2008-04-06 07:35:29 UTC
Permalink
--------------------------------------------------------------------------
¡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 ***@s

Emilio [MS-MVP Access 2006/8]
miliuco56 ALGARROBA hotmail.com
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
Post by !00000
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
--------------------------------------------------------------------------------
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
2008-04-06 09:12:09 UTC
Permalink
En Access tienes strConv():

EnMayusculas = strconv(Micadena,vbpropercase)
--
Saludos

José Bengoechea Ibaceta [MS-MVP Access]
http://jbengoechea.com/
http://jbchea.net
Post by !00000
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
--------------------------------------------------------------------------------
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!
o***@gmail.com
2018-12-08 23:55:52 UTC
Permalink
Prueba con la función ConvCadena

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