Proper syntax for Access 2010 SQL statement

Hello,

I am trying to write a proper SQL statement that would combine multiple fields into a single field and if any of those fields were blank it would still put the rest of the information in with the proper punctuation.

I have written the following statement:

SELECT Trim(+ [BusinessStreet] & (", " + [BusinessCity]) & (", " + [BusinessState]) & " " & [BusinessPostalCode]) AS FullAddress, * INTO sample7
FROM MasterList;

When I then run this I do not get the results I am looking for.  If there is a PO Box in the BusinessStreet field then that is all that gets displayed...everything else is left out.  If there is nothing in the BusinessStreet field and BusinessStreet field then it still places a comma before the BusinessState field.

Hoping someone can tell me what I am missing and provide me with the proper syntax to accomplish.

Thank you for your time
FreddyBassAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

MacroShadowCommented:
Try this:
SELECT Trim([BusinessStreet] & IIf(Nz([BusinessStreet] = "", ", "," ") & [BusinessCity] & IIf(Nz([BusinessStreet] = "", ", "," ") & [BusinessState] & " " & [BusinessPostalCode]) AS FullAddress, * INTO sample7
FROM MasterList;

Open in new window

0
Scott McDaniel (Microsoft Access MVP - EE MVE )Infotrakker SoftwareCommented:
Try using IIF and NZ statements to determine which fields hold a value:

SELECT IIF(Nz([BusinessStreet],"") <>"", BusinessStreet, "")  
& IIF(Nz([BusinessCity],"")<>"", ", " & [BusinessCity], "")
& IIF(Nz([BusinessState],"")<>"", ", " & [BusinessState],"" )
& IIF(Nz([BusinessPostalCode],"") <> "", [BusinessPostalCode], "") AS FullAddress, * INTO sample7
FROM MasterList;

You may need to modify that to better suit your needs in regard to commas, spaces, etc
0
FreddyBassAuthor Commented:
Hello MacroShadow,

Your sample said I had a syntax error when I ran it.

Hi Scott,

Thank you for your sample.  When I ran that it still placed a comma before the BusinessState field when the BusinessCity was missing.  What I am trying to have happen is if the field is blank then it will not put in a comma or blank space.  Hope you can tell me what I am missing.

Thank you both for your input... Looking forward
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

MacroShadowCommented:
SELECT Trim([BusinessStreet] & IIf(Nz([BusinessStreet]) = "", ", "," ") & [BusinessCity] & IIf(Nz([BusinessStreet]) = "", ", "," ") & [BusinessState] & " " & [BusinessPostalCode]) AS FullAddress, * INTO sample7
FROM MasterList;
0
FreddyBassAuthor Commented:
Hi MacroShadow,

Just tried your suggestion...It does not place any punctuation when there is data in the field and it places punctuation when there is not.

I am trying to have syntax that will add proper punctuation when the field has data in it and not display punctuation if the field is blank.

Hope I am explaining properly?  Thank you for your input
0
MacroShadowCommented:
Sorry my bad.
SELECT Trim([BusinessStreet] & IIf(Nz([BusinessStreet]) = "", " ",", ") & [BusinessCity] & IIf(Nz([BusinessStreet]) = "", " ",", ") & [BusinessState] & " " & [BusinessPostalCode]) AS FullAddress, * INTO sample7
FROM MasterList;
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
FreddyBassAuthor Commented:
Hope people have not given up on me?

Could anyone tell me what it is I am missing or doing wrong with the syntax that is preventing me from having it work the way I would like?

Thank you in advance
0
MacroShadowCommented:
You have to test the field for a value other than null (or a zero length string).
Then only if a value exists add a comma.
To do that you should use IIf together with Nz.

Did the last SQL I posted not work?
0
FreddyBassAuthor Commented:
Hi MacroShadow,

That did the trick!!!

Thank you so much...

If I wanted to combine First Name Middle Name and Last Name using the same principle would I just substitute the field names and be able to get the same results so if one of the fields were blank?

Thank you again for your input on helping me to resolve.
0
FreddyBassAuthor Commented:
I would like to thank MacroShadow for sticking with it and providing me with the answer for what I was trying to accomplish.
0
MacroShadowCommented:
If I wanted to combine First Name Middle Name and Last Name using the same principle would I just substitute the field names and be able to get the same results so if one of the fields were blank?
Yes.
0
FreddyBassAuthor Commented:
Thank you
0
FreddyBassAuthor Commented:
Hi MacroShadow,

I am trying to do some further testing so that if any of the fields are blank the end result field will have the proper punctuation and spacing.  i tried testing that if there was no PostalCode or no State info.

Also tried to substitute combining the FirstName MiddleName and LastName fields with the same kind of result.

Should I post another question since I had already accepted this one?

Because you did solve what I had originally ask...and thank you for that

Example:

SELECT Trim([BusinessStreet] & IIf(Nz([BusinessStreet]) = "", " ",", ") & [BusinessCity] & IIf(Nz([BusinessCity]) = "", " ",", ") & [BusinessState] & IIf(Nz([BusinessState]) = "", " ",", ") & " " & [BusinessPostalCode] & IIf(Nz([BusinessPostalCode]) = "", " ",", ")) AS FullName, * INTO sample7d
FROM MasterList;
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Access

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.