Зависит от того, как вы хотите это сделать. Я бы использовал функцию, а не писал сложный SQL. Вот функция, которая сделает это:
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
Это возвращает эти значения:
?SwapNames(Null)
Null
?SwapNames("Fenton")
Fenton
?SwapNames("David Fenton")
Fenton, David
?SwapNames("David W. Fenton")
Fenton, David W.
... и вы просто используете его в своем SQL таким образом:
UPDATE tblPerson
SET tblPerson.FullName = SwapNames(tblPerson.FullName)
Теперь, если вы хотите сделать это только на SQL, это более сложно и действительно грязно. Если ты этого хочешь, просто спроси, и я попробую.