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, 3 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
-
Cox Communications and Charter Communications to merge
by
not so anon
4 hours, 28 minutes ago -
Help with WD usb driver on Windows 11
by
Tex265
3 hours, 36 minutes ago -
hibernate activation
by
e_belmont
7 hours, 21 minutes ago -
Red Hat Enterprise Linux 10 with AI assistant
by
Alex5723
11 hours, 9 minutes ago -
Windows 11 Insider Preview build 26200.5603 released to DEV
by
joep517
14 hours, 14 minutes ago -
Windows 11 Insider Preview build 26120.4151 (24H2) released to BETA
by
joep517
14 hours, 16 minutes ago -
Fixing Windows 24H2 failed KB5058411 install
by
Alex5723
17 hours, 25 minutes ago -
Out of band for Windows 10
by
Susan Bradley
18 hours, 59 minutes ago -
Giving UniGetUi a test run.
by
RetiredGeek
1 day, 1 hour ago -
Windows 11 Insider Preview Build 26100.4188 (24H2) released to Release Preview
by
joep517
1 day, 9 hours ago -
Microsoft is now putting quantum encryption in Windows builds
by
Alex5723
1 day, 7 hours ago -
Auto Time Zone Adjustment
by
wadeer
1 day, 14 hours ago -
To download Win 11 Pro 23H2 ISO.
by
Eddieloh
1 day, 11 hours ago -
Manage your browsing experience with Edge
by
Mary Branscombe
16 hours, 18 minutes ago -
Fewer vulnerabilities, larger updates
by
Susan Bradley
4 hours, 43 minutes ago -
Hobbies — There’s free software for that!
by
Deanna McElveen
11 hours, 8 minutes ago -
Apps included with macOS
by
Will Fastie
8 hours, 59 minutes ago -
Xfinity home internet
by
MrJimPhelps
5 hours, 47 minutes ago -
Convert PowerPoint presentation to Impress
by
RetiredGeek
1 day, 7 hours ago -
Debian 12.11 released
by
Alex5723
2 days, 11 hours ago -
Microsoft: Troubleshoot problems updating Windows
by
Alex5723
2 days, 14 hours ago -
Woman Files for Divorce After ChatGPT “Reads” Husband’s Coffee Cup
by
Alex5723
1 day, 18 hours ago -
Moving fwd, Win 11 Pro,, which is best? Lenovo refurb
by
Deo
25 minutes ago -
DBOS Advanced Network Analysis
by
Kathy Stevens
3 days, 7 hours ago -
Microsoft Edge Launching Automatically?
by
healeyinpa
2 days, 22 hours ago -
Google Chrome to block admin-level browser launches for better security
by
Alex5723
19 hours, 54 minutes ago -
iPhone SE2 Stolen Device Protection
by
Rick Corbett
3 days, 2 hours ago -
Some advice for managing my wireless internet gateway
by
LHiggins
2 days, 10 hours ago -
NO POWER IN KEYBOARD OR MOUSE
by
HE48AEEXX77WEN4Edbtm
1 day, 12 hours ago -
A CVE-MITRE-CISA-CNA Extravaganza
by
Nibbled To Death By Ducks
3 days, 19 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.