Colaboración de Harvey Triana (1)
Rutina para convertir una cadena en formato título
Lo que nos dice el autor sobre esta rutina:
Función para Convertir Sartas
Simples a Titulos
===================================
Hace un par de años programe una base de datos en Access Basic.
Me molestaba que los usuarios no usaran mayúsculas en los campos
que estaban destinados para títulos o nombres propios.
P.e. el titulo « Gerencia de Producción » lo escribían como
« gerencia de producción » .
Pues bien, escribí la función SpanishTitle, la cual convierte
cualquier variable en una cadena tipo titulo :
Por ejemplo :
x = SpanishTitle("esto es un titulo")
Retorna :
"Esto es un Titulo"
Uso la función en los eventos AfterUpdate de los campos
respectivos.
En los programas de Visual Basic que emplean el motor de base de
datos Access se puede usar en el evento Validate del Data
Control.
DefInt A-Z
Public Function SpanishTitle(ByVal x As Variant) As Variant Const Void = "", SP = " ", IL= "|" Static LockWords As String Dim Str As String, Word As String, Change, Ptr If IsNull(x) Then SpanishTitle = Null Exit Function End If If LockWords = Void Then LockWords = "a|ante|bajo|con|contra|de|desde|hasta|para|por|segun|sin|sobre|tras|y|al|la|el|en|del|los|las|que|es|" End If x = LTrim$(RTrim$(CStr(x))) Do 'Get Word: Ptr = InStr(x, SP) If Ptr Then Word = RTrim$(Left$(x, Ptr)) x = LTrim$(Mid$(x, Ptr)) Else Word = x End If 'Change Word Change = True If Not Str = Void Then If InStr(LockWords, Word + IL) Then Change = False End If End If If Change Then Word = UCase$(Left$(Word, 1)) + Mid$(Word, 2) End If Str = Str + Word + IIf(Ptr, SP, Void) Loop Until Ptr = 0 SpanishTitle = Str 'Programmed by Harvey Triana © End Function