Code:
Function SplitNamesAll(strName As String) As String
Dim arrSplit() As String
Dim resF As String
Dim resM As String
Dim resL As String
Dim x As Integer
Dim sfx As String
Dim tmp As String
10 On Error GoTo SplitNamesAll_Error
20 sfx = "JrSrEsqIIIDrMrsMs" 'List of suffixes, add more as needed
'
30 If Trim(strName & "") = "" Then
40 SplitNamesAll = vbNullString
50 Exit Function
60 End If
70 arrSplit = Split(strName, ",", -1)
80 x = UBound(arrSplit)
90 Select Case x
Case 0
100 resL = Trim(arrSplit(0)) 'probably not a person; most likely a company/institutuion
' Debug.Print resL & " *****Not a person; likely a company,estate or institution"
110 SplitNamesAll = resL
120 Case 1
130 resF = Trim(arrSplit(1))
140 resL = Trim(arrSplit(0))
' Debug.Print resF + " " + resL
150 SplitNamesAll = resF + " " + resL
160 Case 2
170 resL = Nz(Trim(arrSplit(0)), "")
180 resM = Nz(Trim(arrSplit(1)), "")
190 resF = Nz(Trim(arrSplit(2)), "")
finalcheck: 'is there a suffix?? if so, then adjust as best
'this code not tested since the patterns are handled above
'
'ONLY the Else path is being used in the test data ***************
'
200 If InStr(sfx, resL) > 0 Then
210 tmp = resM
220 resM = resL
230 resL = resF
240 resF = tmp
' Debug.Print "reformatted " & resF + " " + resL + " " + resM
250 SplitNamesAll = resF + " " + resL + " " + resM
260 Else
' Debug.Print resF + " " + resL + " " + resM
270 SplitNamesAll = resF + " " + resL + ", " + resM
280 End If
290 End Select
300 On Error GoTo 0
310 Exit Function
SplitNamesAll_Error:
320 MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure SplitNamesAll of Module AWF_Related"
End Function