I have a question in MS Access 2007 and I hope someone has the answer. I have a long but simple table containing customer names and the days of the week that deliveries are made. I would like to summarize this table by listing the name and all the days into one new field "ALLDays" while still preserving all the data.
The source table looks something like this:
Name Day
CustomerA Monday
CustomerA Thursday
CustomerB Tuesday
CustomerB Friday
CustomerC Wednesday
CustomerC Saturday
I would like to have a query which returns results like this:
Name ALLDays
CustomerA Monday, Thursday
CustomerB Tuesday, Friday
CustomerC Wednesday, Saturday
Thanks.
Since this is just a small range of options, another approach with no VBA would be to set up a series of IIF statements and concatenate the results.
If you a perfectionist, you could even get rid of the last comma like this
You may also consider keeping them in separate columns, as this may prove more useful if accessing this query from another. For instance, finding only instances with a Tuesday would be easier this way. Something like:
Here is a simple solution that does not require VBA. It uses an update query to concatenate values onto a field.
I'll show it with the example I am using.
I have a table "emails_by_team" that has two fields "team_id" and "email_formatted". What I want is to collect all emails for a given team in one string.
1) I create a table "team_more_info" that has two fields: "team_id" and "team_emails"
2) populate "team_more_info" with all "team_id" from "emails_by_team"
3) create an update query that sets "emails_by_team" to NULL
Query name: team_email_collection_clear
4) This is the trick here: create an update a query
Query name: team_email_collection_update
5) to keep the info up-to-date create a macro that runs the two queries whenever needed
First: team_email_collection_clear
Second: team_email_collection_update
QED
Typically you have to write a function that will allow you to create a concatenated list. Here's what I've used:.
Remou's version has the added feature that you can pass an array of values instead of a SQL statement.
Sample query might look like: