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: September 23, 2015 @ 1:00 p.m. ET / 10:00 a.m. PT The cloud is not just about a runtime platform for your projects – now, you can do your development in the cloud, too. Check out this upcoming eseminar to learn how the cloud improves your development experience and team collaboration. Join Dana Singleterry, Principal Product Manager for Oracle Dev Tools, as he discusses how to simplify every aspect of the development lifecycle, including requirements gathering, version management, code …

  • Lenovo recommends Windows 8 Pro. "I dropped my laptop getting out of the taxi." This probably sounds familiar to most IT professionals. If your employees are traveling, you know their devices are in for a rough go. Whether it's a trip to the conference room or a convention out of town, any time equipment leaves a user's desk it is at risk of being put into harm's way. Stay connected at all times, whether at the office or on the go, with agile, durable, and flexible devices like the Lenovo® …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date