This code example might be useful to you ... you can use it to make fields on a form correct automatically to Proper Case when the field is updated. My function also takes care of names such as McDonald, O'Neill and Smith-Jones ...
1. Put this function in your Access global module.
Function ProperCase(stOneLine As String) As String
'----------------------------------------------------------
'- This function will convert a string to Proper Case - -
'- the initial letter of each word is capitalised. -
'- It will also handle special names such as O', Mc and -
'- hyphenated names -
'----------------------------------------------------------
Dim I As Integer
Dim bChangeFlag As Boolean
Dim stResult As String
'----------------------------------------------------------
'- No characters in string - nothing to do -
'----------------------------------------------------------
If Len(stOneLine) = 0 Then
ProperCase = ""
Exit Function
End If
'----------------------------------------------------------
'- Always set first letter to upper case -
'----------------------------------------------------------
stResult = UCase$(Left$(stOneLine, 1))
'----------------------------------------------------------
'- Now look at the rest of the string -
'----------------------------------------------------------
For I = 2 To Len(stOneLine)
'----------------------------------------------------------
'- If the previous letter triggered a capital, change -
'- this letter to upper case -
'----------------------------------------------------------
If bChangeFlag = True Then
stResult = stResult & UCase$(Mid$(stOneLine, I, 1))
bChangeFlag = False
'----------------------------------------------------------
'- In other cases change letter to lower case -
'----------------------------------------------------------
Else
stResult = stResult & LCase$(Mid$(stOneLine, I, 1))
End If
'----------------------------------------------------------
'- Set change flag if a space, apostrophe or hyphen found -
'----------------------------------------------------------
Select Case Mid$(stOneLine, I, 1)
Case " ", "'", "-"
bChangeFlag = True
Case Else
bChangeFlag = False
End Select
Next I
'----------------------------------------------------------
'- Special handling for Mc at start of a name -
'----------------------------------------------------------
If Left$(stResult, 2) = "Mc" Then
Mid$(stResult, 3, 1) = UCase$(Mid$(stResult, 3, 1))
End If
I = InStr(stResult, " Mc"

If I > 0 Then
Mid$(stResult, I + 3, 1) = UCase$(Mid$(stResult, I + 3, 1))
End If
ProperCase = stResult
End Function
2. Add an 'After Update' Event Procedure to each field which is to be 'proper cased'. Example for an EmployeeSurname field:
Private Sub EmployeeSurname_AfterUpdate()
If Me.EmployeeSurname > "" Then
Me.EmployeeSurname = ProperCase(Me.EmployeeSurname)
DoEvents
End If
End Sub
That's it! When anything is typed into the field, it will be converted to proper case when the cursor exits from the field, e.g.
FRED > Fred
smith > Smith
mcdonald > McDonald
o'NEILL > O'Neill
SMITH-JONES > Smith-Jones