Cela dépend de la manière dont vous voulez procéder. J'utiliserais une fonction plutôt que d'écrire un code SQL compliqué. Voici une fonction qui pourrait faire l'affaire :
Public Function SwapNames(ByVal varOriginalName As Variant) As Variant
Dim strOriginalName As String
Dim lngLastNameStart As Long
Dim strLastName As String
Dim strFirstName As String
If IsNull(varOriginalName) Or InStr(varOriginalName, " ") = 0 Then
SwapNames = varOriginalName
Else
strOriginalName = varOriginalName
lngLastNameStart = InStrRev(strOriginalName, " ") + 1
strLastName = Mid(strOriginalName, lngLastNameStart)
strFirstName = Left(strOriginalName, lngLastNameStart - 2)
SwapNames = strLastName & ", " & strFirstName
End If
End Function
Ces valeurs sont renvoyées :
?SwapNames(Null)
Null
?SwapNames("Fenton")
Fenton
?SwapNames("David Fenton")
Fenton, David
?SwapNames("David W. Fenton")
Fenton, David W.
...et vous l'utiliserez simplement dans votre SQL ainsi :
UPDATE tblPerson
SET tblPerson.FullName = SwapNames(tblPerson.FullName)
Maintenant, si vous voulez le faire en SQL seulement, c'est plus compliqué et vraiment désordonné. Si c'est ce que vous voulez, demandez-le moi et j'essaierai.