Public 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]).
'
' See Also: StrConv Function in the
Dim Temp$, C$, OldC$, i As Integer
If IsNull(x) Then Exit Function
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$)
OldC$ = C$
Next i
Proper = Temp$
End Function
Now in your Query just say:
Expr2: Proper([FIELD1] & ", " & [FIELD2])
or in SQL:
SELECT Proper([FIELD1] & ", " & [FIELD2]) AS Expr2 FROM tblMyTable;
This accounts for hyphens in the names where as StrConv with vbProperCase doesn't.