Function Proper(x)
' Mettre la première lettre de chaque mot d'un champ en majuscule.
' Utiliser dans une procédure événementielle AfterUpdate d'un contrôle;
' par exemple, [Last Name] = Proper([Last Name]).
' Les noms tel que O'Brien et Wilson-Smythe sont proprement manipulés,
' mais MacDonald est modifié en Macdonald, et van Buren en Van Buren.
' Note: Pour que cette fonction travaille correctement, vous devez spécifier
' Option Compare Database dans la section des déclarations du module.
Dim Temp$, c$, OldC$, i As Integer
If IsNull(x) Then
Exit Function
Else
Temp$ = CStr(LCase(x))
' Initialiser OldC$ en un espace simple car la première lettre
' doit être mise en majuscule même si aucun caractère ne la précède.
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