Standard Name Formatting Routine

Names of people come in many separate parts, some of which can be not present or not known. The hassle begins if you are dealing with a storage system (database or otherwise) where the parts are stored separately. You are now faced with a formidable task of putting it all together and making sure that correct formatting is used.

A common mistake will format a person whose middle initial is not known as:

John . Doe instead of John Doe

However making it right requires some effort and there is no need to repeat it for every time. That's why I created the following functions:

public Function FormatName(firstname as string, _
                           lastname as string, _
                           optional mi as string, _
                           optional title as string, _
                           optional Suffix as string) as string

    If len(Trim$(title)) > 0 then
        FormatName = StrConv(title, vbProperCase)
        If Right$(FormatName, 1) <> "." then FormatName = _
           FormatName & "."
        FormatName = FormatName & " "
    End If

    If len(Trim$(firstname)) > 0 then
        FormatName = FormatName & StrConv(firstname, _
                     vbProperCase) & " "
    End If

    If len(Trim$(mi)) > 0 then
        FormatName = FormatName & StrConv(mi, vbProperCase)
        If Right$(FormatName, 1) <> "." then FormatName = _
           FormatName & "."
        FormatName = FormatName & " "
    End If

    If len(Trim$(lastname)) > 0 then
        FormatName = FormatName & StrConv(lastname, vbProperCase) _
                     & " "
    End If

    If len(Trim$(Suffix)) > 0 then
        FormatName = Trim$(FormatName) & ", " & StrConv(Suffix, _
                     vbProperCase)
    End If

    FormatName = Trim$(FormatName)

End Function

This function is similar to the one above, except that it puts the lastname first.

public Function FormatNameReverse(firstname as string, _
       lastname as string, _
       optional mi as string) as string

    FormatNameReverse = StrConv(lastname, vbProperCase)

    If len(Trim$(firstname)) > 0 Or len(Trim$(mi)) > 0 then
        FormatNameReverse = FormatNameReverse & ","
    End If

    If len(Trim$(firstname)) > 0 then
        FormatNameReverse = FormatNameReverse & " " & _
                            Trim$(StrConv(firstname, vbProperCase))
    End If

    If len(Trim$(mi)) > 0 then
        FormatNameReverse = FormatNameReverse & " " & _
                            Trim$(StrConv(Left$(mi, 1), _
                            vbProperCase)) & "."
    End If

    FormatNameReverse = Trim$(FormatNameReverse)

End Function


Comments

  • Program

    Posted by Legacy on 12/11/2003 12:00am

    Originally posted by: Grea

    how can you check if there is a comma between the wholename then swap the name?  eg: Doe, Joe to Joe Doe
    
    or Joe (doe) to Joe (doe)

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Live Event Date: October 29, 2014 @ 11:00 a.m. ET / 8:00 a.m. PT Are you interested in building a cognitive application using the power of IBM Watson? Need a platform that provides speed and ease for rapidly deploying this application? Join Chris Madison, Watson Solution Architect, as he walks through the process of building a Watson powered application on IBM Bluemix. Chris will talk about the new Watson Services just released on IBM bluemix, but more importantly he will do a step by step cognitive …

  • In support of their business continuity and disaster recovery plans, many midsized companies endeavor to avoid putting all their eggs in one basket. Understanding the critical role of last-mile connectivity and always available Internet access for their enterprises, savvy firms utilize redundant connections from multiple service providers. Despite the good intentions, their Internet connectivity risk may still be in a single basket. That is because internet service providers (ISPs) and competitive local …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds