Dear @Rachel,
Welcome to Microsoft Q&A Forum!
Based on your description, I can see that this happens in Microsoft Access when the report’s underlying data returns more than one matching record. Access may not actually duplicate your report object, it simply prints the report once for every row returned by the report’s Record Source or subreports. That’s why you’re seeing 12 copies, your main query or one of the subqueries is returning 12 rows, so Access repeats the report 12 times.
There are several reasons that may cause it:
Access repeats a report when:
1.The main Record Source joins to another table/query that has multiple matching rows
- If a parent record links to 12 child rows, Access produces 12 copies of the report.
- This includes subqueries that are not limited to a single row per parent.
2.A subreport or subquery is placed in the Detail section:
- Items in the Detail section repeat once per related row.
- If a subreport returns 12 rows, the main report prints 12 times.
3.Joins are missing or incorrect, causing a Cartesian join: missing primary‑key relationships can multiply rows unexpectedly.
You can do these steps to confirm it: open the Record Source of the main report directly (open it as a query). If you see 12 rows instead of 1, the report is behaving correctly, it’s showing one report per returned row.
Therefore, I have tried my best to find these ideas that you can try to see if they can help:
1.Ensure each subquery returns only one row per parent: use one of SELECT DISTINCT ... or GROUP BY ... or apply criteria that limits results to a single record.
2.Review your joins to make sure each join uses a key-to-key relationship and does not accidentally create multiple matches.
3.Move subreports out of the Detail section:
Place subreports in:
- the Report Header,
- Page Header, or
- a Group Header
So, they run once per parent record instead of per detail row.
Additionally, I found that many users had similar issue as your case, but there is no official confirmation for a proper fix. However, I also found these articles during my research that may be related to your concern, you can consult them to see if they can give you more insights:
- This case was partially similar to your situation, please kindly check the comments for a potential method provided by a user in there: https://www.access-programmers.co.uk/forums/threads/access-report-creating-duplicates.301160/
- https://www.accessjumpstart.com/hiding-duplicate-records-using-running-totals-over-a-group/
- https://nolongerset.com/hide-dupe-values-in-reports/
Please note that our support is limited to providing guidance based on official Microsoft documentation. Any third-party resources or references shared above are intended solely for informational or consultative purposes. Microsoft does not guarantee the accuracy, reliability, or continued availability of third-party content, and we recommend exercising discretion when referring to such materials.
I hope this information can help you. Wish you a pleasant day!
If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.