Some years back I found this.... (not in this century) ;-)
I do not know who to credit for the invention, but perhaps it can be of some use to you.
Function Proper(x)
' Capitalise 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 capitalised,
' 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 capitalised 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
Herman
They say that crime doesn't pay... does that mean my job is a crime?