Tengo una version de esta función en Delphi, pero no aquí... si te sirve te mando la que hice para VB:
Código:
Private Const CHR_LITERALS = "abcdefghijklmnñopqrstuvwxyzáéíóúàèìòùäëïöüABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚÀÈÌÒÙÄËÏÖÜ0123456789"
' Como la función de Oracle o el Capitalize de otros lenguajes
' Pone en mayúsculas la primer letra de cada palabra y en minúsculas el resto
Public Function InitCap(ByVal AText As String) As String
Dim Result As String
Dim PrevChar As String
Dim I As Integer
Result = LCase(AText)
PrevChar = Chr(0)
For I = 1 To Len(AText)
If InStr(1, CHR_LITERALS, PrevChar) = 0 Then
Result = Left$(Result, I - 1) & UCase(Mid$(Result, I, 1)) & Mid$(Result, I + 1)
End If
PrevChar = Mid$(Result, I, 1)
Next I
InitCap = Result
End Function
Saludos!