Before converting the data to upper case or using masks to do it always ask the question. What if I want it in the correct case afterwards. It is easy to display the data in uppercase or lower case but extremely difficult to fix case problems at a later date. A little piece of code that i use often when users fall into this trap follows
Hope this helps
Norm
Function Proper(varAny As Variant) As Variant
' Converts first letter of each word to uppercase
' Usefull for converting surnames to correct case.
' Note: although this function converts most proper names correctly, it converts
' "McKee" to "Mckee", "van Buren" to "Van Buren", "John III" to "John Iii"
' Maybe worthwhile to create a table of known errors and use an update query to
' fix the conversion errors. This would be built up over a period of time.
' Some may not be anticipated. For example Comm'Ty
Dim intPtr As Integer
Dim strName As String
Dim strCurrChar As String, strPrevChar As String
If IsNull(varAny) Then
Exit Function
End If
strName = CStr(varAny)
For intPtr = 1 To Len(strName) ' Go through string char by char.
strCurrChar = Mid$(strName, intPtr, 1) ' Get the current character.
' If previous char is letter, this char should be lowercase.
Select Case strPrevChar
Case "A" To "Z", "a" To "z"
Mid(strName, intPtr, 1) = LCase(strCurrChar)
Case Else
' the If statement added to correct error of conversin
' when "'" is the second last character of the string or
' when "'s" is at the end of the word eg "Women's Hospital"
If (intPtr = Len(strName) Or Mid(strName, intPtr, 1) = "s"

And strPrevChar = "'" Then
Mid(strName, intPtr, 1) = LCase(strCurrChar)
Else
Mid(strName, intPtr, 1) = UCase(strCurrChar)
End If
End Select
strPrevChar = strCurrChar
Next intPtr
Proper = CVar(strName)
End Function