I’m trying to copy data from a field Owner into a new field PropertyOwner. The data is not consistent. Some is in this form: “HAMILTON, JEFF”. Some leaves out the space after the comma. Some records have no comma at all. My biggest headach, though, is dealing with all the variations of TRUST, LIVING TRUST and TR in the data. If I have a record that looks like this–“HAMILTON,TR”–it needs to come like “HAMILTON TR”. I’ve attached a zip file that contains a test table, update query and module that I think is close to what I need. It doesn’t deal properly with all the instances of the data. If someone can take a look and help fix my query or the module, or suggest some other alternative, I’d appreciate it.
![]() |
Patch reliability is unclear. Unless you have an immediate, pressing need to install a specific patch, don't do it. |
SIGN IN | Not a member? | REGISTER | PLUS MEMBERSHIP |
-
Dealing with Name data (Access 2002)
Home » Forums » AskWoody support » Productivity software by function » MS Access and database help » Dealing with Name data (Access 2002)
- This topic has 29 replies, 5 voices, and was last updated 21 years, 4 months ago.
AuthorTopicWSjhamilton
AskWoody LoungerFebruary 4, 2004 at 1:13 am #400162Viewing 0 reply threadsAuthorReplies-
WSHansV
AskWoody Lounger -
WSjhamilton
AskWoody Lounger -
WSjhamilton
AskWoody Lounger -
WSjhamilton
AskWoody LoungerFebruary 4, 2004 at 4:48 pm #778883I spoke a bit too soon. When I tried it on a larger set of data, I noticed a couple of problems. First, the routine doesn’t deal properly with the following data: JOSLIN,BARBARA A ETAL. I get the following result: JOSLINE BARBARA A ET AL when it should be BARBARA A JOSLIN ETAL. I think we need to add a procedure that searches for the unique endings (TR, ETAL) and stores that to a variable, say ENDING. Then if there’s a comma, the string to the left of the comma gets stored to a variable LASTNAME. Then we store the string data to the right of the comma to a variable up to but excluding the unique ending string, if it exists, and call that FIRSTNAME. Then we rebuild the name as FIRSTNAME &” “& LASTNAME& ” “& ENDING. I don’t know how to code this and don’t know if I’m on the right track, but these are my thoughts.
Second, the procedure doesn’t deal properly with last names that begin with TR: AGUILAR,TRINIDAD or BRISENO,TRIFUNO & ANA TR (the last one’s really nasty). If we could deal with the first of the two it would be great. I can accept that a canned routine probably can’t deal with all possible versions of the data.
I’ve attached another copy of the database. Note that I added lines to the code trying to cover more versions of the ending, but it didn’t seem to help.
-
WScharlotte
AskWoody Lounger -
WSjhamilton
AskWoody LoungerFebruary 4, 2004 at 10:08 pm #779019Is such special handling something best left to an accomplished programmer (something I’m not) or are the solutions simple enough that I can understand and implement them? BTW, I have to deal with close to 40,000 records, of which a few hundred change each month. There’s no easy way to know each month which records may have these unique naming characteristics.
-
WSjhamilton
AskWoody LoungerFebruary 4, 2004 at 10:08 pm #779020Is such special handling something best left to an accomplished programmer (something I’m not) or are the solutions simple enough that I can understand and implement them? BTW, I have to deal with close to 40,000 records, of which a few hundred change each month. There’s no easy way to know each month which records may have these unique naming characteristics.
-
-
WScharlotte
AskWoody Lounger -
WSMarkD
AskWoody LoungerFebruary 4, 2004 at 9:04 pm #778991If interested, you can try using these functions:
Public Function GetNewText(ByVal strTxt As String) As String
On Error GoTo Err_HandlerDim strMsg As String
Dim intPos As Integer
Dim strTmp As String
Dim strFName As String
Dim strLName As String
Dim strSuffix As StringIf InStr(1, strTxt, “,”, 0) > 1 Then
intPos = InStr(1, strTxt, “,”, 0)
ElseIf InStr(1, strTxt, ” “, 0) > 1 Then
intPos = InStr(1, strTxt, ” “, 0)
Else
‘ No commas or spaces:
GetNewText = strTxt
Exit Function
End IfstrLName = Left$(strTxt, intPos – 1)
strTmp = Mid$(strTxt, intPos + 1)Do
intPos = InStr(1, strTmp, ” “, 0)
If intPos = 0 Then
If IsSuffix(strTmp) Then
strSuffix = strTmp
Else
strFName = strFName & ” ” & strTmp
End If
Exit Do
Else
If IsSuffix(strTmp) Then
strSuffix = strTmp
Exit Do
Else
strFName = strFName & ” ” & Left$(strTmp, intPos – 1)
strTmp = Mid$(strTmp, intPos + 1)
End If
End If
LoopGetNewText = Trim$(strFName & ” ” & strLName & ” ” & strSuffix)
Exit_Sub:
Exit Function
Err_Handler:
strMsg = “Error No ” & Err.Number & “: ” & Err.Description
Beep
MsgBox strMsg, vbExclamation, “ERROR MESSAGE”
Resume Exit_SubEnd Function
Private Function IsSuffix(ByRef strTmp As String) As Boolean
strTmp = UCase$(strTmp)
Select Case strTmp
Case “ETAL”, “ET AL”, “TR”, “TR ET AL”, “TR ETAL”, _
“TRUST”, “TRUST ET AL”, “TRUST ETAL”, _
“LIVING TR”, “LIVING TR ET AL”, “LIVING TR ETAL”, _
“LIVING TRUST”, “LIVING TRUST ET AL”, “LIVING TRUST ETAL”
IsSuffix = True
Case Else
IsSuffix = False
End SelectEnd Function
In test query, the GetNewText function returned correct results, using the table with sample data provided in your attachment. But if there are even more exclusions, exceptions, and deviations not included in the sample table, you will have to modify functions above accordingly. If modifying function, ensure that there will always be exit point for the Do loop so it does not loop endlessly. Also if any null fields in table use Nz function in query or else function will result in Invalid Use of Null error.
HTH
-
WSMarkD
AskWoody LoungerFebruary 4, 2004 at 9:04 pm #778992If interested, you can try using these functions:
Public Function GetNewText(ByVal strTxt As String) As String
On Error GoTo Err_HandlerDim strMsg As String
Dim intPos As Integer
Dim strTmp As String
Dim strFName As String
Dim strLName As String
Dim strSuffix As StringIf InStr(1, strTxt, “,”, 0) > 1 Then
intPos = InStr(1, strTxt, “,”, 0)
ElseIf InStr(1, strTxt, ” “, 0) > 1 Then
intPos = InStr(1, strTxt, ” “, 0)
Else
‘ No commas or spaces:
GetNewText = strTxt
Exit Function
End IfstrLName = Left$(strTxt, intPos – 1)
strTmp = Mid$(strTxt, intPos + 1)Do
intPos = InStr(1, strTmp, ” “, 0)
If intPos = 0 Then
If IsSuffix(strTmp) Then
strSuffix = strTmp
Else
strFName = strFName & ” ” & strTmp
End If
Exit Do
Else
If IsSuffix(strTmp) Then
strSuffix = strTmp
Exit Do
Else
strFName = strFName & ” ” & Left$(strTmp, intPos – 1)
strTmp = Mid$(strTmp, intPos + 1)
End If
End If
LoopGetNewText = Trim$(strFName & ” ” & strLName & ” ” & strSuffix)
Exit_Sub:
Exit Function
Err_Handler:
strMsg = “Error No ” & Err.Number & “: ” & Err.Description
Beep
MsgBox strMsg, vbExclamation, “ERROR MESSAGE”
Resume Exit_SubEnd Function
Private Function IsSuffix(ByRef strTmp As String) As Boolean
strTmp = UCase$(strTmp)
Select Case strTmp
Case “ETAL”, “ET AL”, “TR”, “TR ET AL”, “TR ETAL”, _
“TRUST”, “TRUST ET AL”, “TRUST ETAL”, _
“LIVING TR”, “LIVING TR ET AL”, “LIVING TR ETAL”, _
“LIVING TRUST”, “LIVING TRUST ET AL”, “LIVING TRUST ETAL”
IsSuffix = True
Case Else
IsSuffix = False
End SelectEnd Function
In test query, the GetNewText function returned correct results, using the table with sample data provided in your attachment. But if there are even more exclusions, exceptions, and deviations not included in the sample table, you will have to modify functions above accordingly. If modifying function, ensure that there will always be exit point for the Do loop so it does not loop endlessly. Also if any null fields in table use Nz function in query or else function will result in Invalid Use of Null error.
HTH
-
WSjhamilton
AskWoody Lounger -
WSMarkD
AskWoody LoungerFebruary 4, 2004 at 11:30 pm #779051Attached is modified version of the db you attached previously. The code I used is in Module1. The GetNewText function is declared as Public so it can be used in a query. Any function you write yourself, as opposed to the built-in functions provided by Access or by VBA, is usually described as a “user-defined” or “custom” function. For example of use in query, see “Test Query” and “Update Test Query” (update query) in attached db. If the data being processed each month is in same general format, it would not be hard to modify IsSuffix function Select Case statement to include other possibilities, but if the data is radically different there may be no single function that could effectively handle every possible case.
HTH
-
WSjhamilton
AskWoody Lounger -
WSjhamilton
AskWoody Lounger -
WSjhamilton
AskWoody Lounger -
WSjhamilton
AskWoody Lounger -
WSMarkD
AskWoody LoungerFebruary 4, 2004 at 11:30 pm #779052Attached is modified version of the db you attached previously. The code I used is in Module1. The GetNewText function is declared as Public so it can be used in a query. Any function you write yourself, as opposed to the built-in functions provided by Access or by VBA, is usually described as a “user-defined” or “custom” function. For example of use in query, see “Test Query” and “Update Test Query” (update query) in attached db. If the data being processed each month is in same general format, it would not be hard to modify IsSuffix function Select Case statement to include other possibilities, but if the data is radically different there may be no single function that could effectively handle every possible case.
HTH
-
-
WSjhamilton
AskWoody Lounger
-
-
WSHansV
AskWoody Lounger -
WSpatt
AskWoody Lounger -
WSHansV
AskWoody Lounger -
WSpatt
AskWoody LoungerFebruary 4, 2004 at 9:48 pm #779015Just like my old maths teacher in year 11. He as of the opinion that ‘mathmeticians are lazy, boys’ and I’m am going to teach you the short (as well as the long) way of solving maths problems. We were the 5B class and so he tookit as a bit of a challenge to outdo the 5A class. To cut a long story short, he did so easily.
Enough of this nostalgia, still a nice solution Hans.
-
WSpatt
AskWoody LoungerFebruary 4, 2004 at 9:48 pm #779016Just like my old maths teacher in year 11. He as of the opinion that ‘mathmeticians are lazy, boys’ and I’m am going to teach you the short (as well as the long) way of solving maths problems. We were the 5B class and so he tookit as a bit of a challenge to outdo the 5A class. To cut a long story short, he did so easily.
Enough of this nostalgia, still a nice solution Hans.
-
WSHansV
AskWoody Lounger
-
-
WSpatt
AskWoody Lounger -
WSjhamilton
AskWoody LoungerFebruary 6, 2004 at 5:29 pm #779950 -
WSjhamilton
AskWoody LoungerFebruary 6, 2004 at 5:29 pm #779951
-
-
WSHansV
AskWoody Lounger
-
-
WSjhamilton
AskWoody LoungerFebruary 4, 2004 at 4:48 pm #778884I spoke a bit too soon. When I tried it on a larger set of data, I noticed a couple of problems. First, the routine doesn’t deal properly with the following data: JOSLIN,BARBARA A ETAL. I get the following result: JOSLINE BARBARA A ET AL when it should be BARBARA A JOSLIN ETAL. I think we need to add a procedure that searches for the unique endings (TR, ETAL) and stores that to a variable, say ENDING. Then if there’s a comma, the string to the left of the comma gets stored to a variable LASTNAME. Then we store the string data to the right of the comma to a variable up to but excluding the unique ending string, if it exists, and call that FIRSTNAME. Then we rebuild the name as FIRSTNAME &” “& LASTNAME& ” “& ENDING. I don’t know how to code this and don’t know if I’m on the right track, but these are my thoughts.
Second, the procedure doesn’t deal properly with last names that begin with TR: AGUILAR,TRINIDAD or BRISENO,TRIFUNO & ANA TR (the last one’s really nasty). If we could deal with the first of the two it would be great. I can accept that a canned routine probably can’t deal with all possible versions of the data.
I’ve attached another copy of the database. Note that I added lines to the code trying to cover more versions of the ending, but it didn’t seem to help.
-
Viewing 0 reply threads -

Plus Membership
Donations from Plus members keep this site going. You can identify the people who support AskWoody by the Plus badge on their avatars.
AskWoody Plus members not only get access to all of the contents of this site -- including Susan Bradley's frequently updated Patch Watch listing -- they also receive weekly AskWoody Plus Newsletters (formerly Windows Secrets Newsletter) and AskWoody Plus Alerts, emails when there are important breaking developments.
Get Plus!
Welcome to our unique respite from the madness.
It's easy to post questions about Windows 11, Windows 10, Win8.1, Win7, Surface, Office, or browse through our Forums. Post anonymously or register for greater privileges. Keep it civil, please: Decorous Lounge rules strictly enforced. Questions? Contact Customer Support.
Search Newsletters
Search Forums
View the Forum
Search for Topics
Recent Topics
-
Hello Windows…My Problem is Windows Hello…
by
rdleib
56 minutes ago -
New Canon Printer Wants Data Sent
by
Win7and10
1 hour, 14 minutes ago -
I set up passkeys for my Microsoft account
by
Lance Whitney
22 minutes ago -
AI is for everyone
by
Peter Deegan
47 minutes ago -
Terabyte update 2025
by
Will Fastie
6 hours, 8 minutes ago -
Migrating from Windows 10 to Windows 11
by
Susan Bradley
5 hours, 13 minutes ago -
Lost sound after the upgrade to 24H2?
by
Susan Bradley
1 day ago -
How to move 10GB of data in C:\ProgramData\Package Cache ?
by
Alex5723
29 minutes ago -
Plugged in 24-7
by
CWBillow
9 hours, 58 minutes ago -
Netflix, Apple, BofA websites hijacked with fake help-desk numbers
by
Nibbled To Death By Ducks
1 day, 13 hours ago -
Have Copilot there but not taking over the screen in Word
by
CWBillow
1 day, 10 hours ago -
Windows 11 blocks Chrome 137.0.7151.68, 137.0.7151.69
by
Alex5723
3 days, 4 hours ago -
Are Macs immune?
by
Susan Bradley
1 day, 2 hours ago -
HP Envy and the Function keys
by
CWBillow
2 days, 12 hours ago -
Microsoft : Removal of unwanted drivers from Windows Update
by
Alex5723
5 hours, 19 minutes ago -
MacOS 26 beta 1 dropped support for Firewire 400/800
by
Alex5723
3 days, 15 hours ago -
Unable to update to version 22h2
by
04om
1 day ago -
Windows 11 Insider Preview Build 26100.4482 (24H2) released to Release Preview
by
joep517
3 days, 23 hours ago -
Windows 11 Insider Preview build 27881 released to Canary
by
joep517
3 days, 23 hours ago -
Very Quarrelsome Taskbar!
by
CWBillow
3 days, 9 hours ago -
Move OneNote Notebook OFF OneDrive and make it local
by
CWBillow
4 days, 12 hours ago -
Microsoft 365 to block file access via legacy auth protocols by default
by
Alex5723
4 days, 1 hour ago -
Is your battery draining?
by
Susan Bradley
6 hours, 57 minutes ago -
The 16-billion-record data breach that no one’s ever heard of
by
Alex5723
1 day ago -
Weasel Words Rule Too Many Data Breach Notifications
by
Nibbled To Death By Ducks
4 days, 16 hours ago -
Windows Command Prompt and Powershell will not open as Administrator
by
Gordski
18 hours, 27 minutes ago -
Intel Management Engine (Intel ME) Security Issue
by
PL1
4 days ago -
Old Geek Forced to Update. Buy a Win 11 PC? Yikes! How do I cope?
by
RonE22
3 days, 17 hours ago -
National scam day
by
Susan Bradley
2 days, 23 hours ago -
macOS Tahoe 26 the end of the road for Intel Macs, OCLP, Hackintosh
by
Alex5723
3 days, 20 hours ago
Recent blog posts
Key Links
Want to Advertise in the free newsletter? How about a gift subscription in honor of a birthday? Send an email to sb@askwoody.com to ask how.
Mastodon profile for DefConPatch
Mastodon profile for AskWoody
Home • About • FAQ • Posts & Privacy • Forums • My Account
Register • Free Newsletter • Plus Membership • Gift Certificates • MS-DEFCON Alerts
Copyright ©2004-2025 by AskWoody Tech LLC. All Rights Reserved.