Hi Todd!
Assuming your name fields are consistant in the use of commas and spaces then you can use the following procedures:
Public Function ReturnLastName(FullName As Variant) As String
Dim strFullName As String
Dim lngCommaPos As Long
Dim lngSpacePos As Long
If IsNull(FullName) = True Then
ReturnLastName = ""
Else
strFullName = FullName
lngCommaPos = InStr(strFullName, ",")
If lngCommaPos = 0 Then
ReturnLastName = strFullName 'ie only a last name
Else
returnLastName = Left(strFullName, lngCommaPos - 1)
End If
End If
End Function
Public Function ReturnFirstName(FullName As Variant) As String
Dim strFullName As String
Dim lngCommaPos As Long
Dim lngSpacePos As Long
If IsNull(FullName) = True Then
ReturnFirstName = ""
Else
strFullName = FullName
lngCommaPos = InStr(strFullName, ",")
If lngCommaPos = 0 Then
ReturnFirstName = ""
Else
lngSpacePos = InStr(lngCommaPos + 2, strFullName, " ")
If lngSpacePos = 0 Then
ReturnFirstName = Mid(strFullName, lngCommaPos + 2)
Else
ReturnFirstName = Mid(strFullName, lngCommaPos + 2, lngSpacePos - lngCommaPos - 2)
End If
End If
End If
End Function
Public Function ReturnMiddleName(FullName As Variant) As String
Dim strFullName As String
Dim lngCommaPos As Long
Dim lngSpacePos As Long
If IsNull(FullName) = True Then
ReturnMiddleName = ""
Else
strFullName = FullName
lngCommaPos = InStr(strFullName, ",")
If lngCommaPos = 0 Then
ReturnMiddleName = ""
Else
lngSpacePos = Instr(lngCommaPos + 2, strFullName, " ")
If lngSpacePos = 0 Then
ReturnMiddleName = ""
Else
ReturnMiddleName = Mid(strFullName, lngSpacePos + 1)
End If
End If
End If
End Function
hth
Jeff Bridgham
bridgham@purdue.edu