Home  |   French  |   About  |   Search  | mvps.org  

What's New
Table Of Contents
Credits
Netiquette
10 Commandments 
Bugs
Tables
Queries
Forms
Reports
Modules
APIs
Strings
Date/Time
General
Downloads
Resources
Search
Feedback
mvps.org

In Memoriam

Terms of Use


VB Petition

Strings: Capitalize first character of every word automatically

Author(s)
Dev Ashish

(Q) How can I capitalize the first character of each word in a field/string?

(A) Under Access 97, you can use the StrConv function.  For example,

    StrConv("dev ashish", vbProperCase)

For Access 2.0, use the Proper function provided by Microsoft.

'******************* Code Begin ****************
Function Proper(X)
' Capitalize first letter of every word in a field.
' Use in an event procedure in AfterUpdate of control;
' for example, [Last Name] = Proper([Last Name]).
' Names such as O'Brien and Wilson-Smythe are properly capitalized,
' but MacDonald is changed to Macdonald, and van Buren to Van Buren.
' Note: For this function to work correctly, you must specify
' Option Compare Database in the Declarations section of this module.
Dim Temp$, C$, OldC$, i As Integer
    If IsNull(X) Then
        Exit Function
    Else
        Temp$ = CStr(LCase(X))
        ' Initialize OldC$ to a single space because first
        ' letter needs to be capitalized but has no preceding letter.
        OldC$ = " "
        For i = 1 To Len(Temp$)
            C$ = Mid$(Temp$, i, 1)
            If C$ >= "a" And C$ <= "z" And _
                (OldC$ < "a" Or OldC$ > "z") Then
                    Mid$(Temp$, i, 1) = UCase$(C$)
            End If
            OldC$ = C$
        Next i
        Proper = Temp$
    End If
End Function
'******************* Code End ****************

© 1998-2010, Dev Ashish & Arvin Meyer, All rights reserved. Optimized for Microsoft Internet Explorer