Not to throw in a “Yeah but” and defend myself kicking and screaming
But beauty and methods are in the mind of the beholder. And in the world of “one-time” efforts. So the following isn’t to defend my point but to give a perspective that there are different ways to pluck a chicken (apologizes to vegans and vegetarians)
Your one-time effort is to construct a format for printing a block address (when needed) accommodating all the variations of “address”. that includes a possible “Atten:” line, multiple address lines, and different zip code formats. Various one, two, three, and four (or more) words/prefixes/suffixes in a person’s name, company name (or not), etc.
Now sure enough, Jim has done a grand job of making that as easy as possible with functions like sandwich() and other address-related tools that work on most “standard” names and addresses.
But building a text object with formulas that will construct a formatted address label for ALL possible elements is … non-trivial. And still - it’s a one-time effort.
Consider another way - All the address info is in one field, with perhaps the Company and Person’s name separate - because you may want them as elements in a form letter (i.e Dear [person’s first name field])
Also, your database has a spare text field (and also spare date and number fields because they come in handy). The one-time task is to create a routine that will extract - for example the state - from the address block. The address block can have delimiter characters that can be disappeared at print/display time.
This one-time effort is to pull the desired address element - like city - from the block, put it in the spare field, then maybe select - if you couldn’t do that already just selecting on the element in the address block - and sort on the spare field.
A lot of “This way or that way” depends on the nature of the data. Are they just domestic with one name field, one or two address lines, city, state, zip - and only USA addresses. Or does it incorporate international elements.
So sure. For some, maybe most, situations, separate fields for the address elements is the way to go. It’s just not the ONLY way to go.
That’s my story and I’m stick’n to it.