Free Lessons
Courses
Seminars
TechHelp
Fast Tips
Templates
Topic Index
Forum
ABCD
 
Home   Courses   TechHelp   Forums   Help   Contact   Merch   Join   Order   Logon  
 
Home > TechHelp > Directory > Access > Subreports > < Update Field | Dir Function >
Subreports
By Richard Rost   Richard Rost on LinkedIn Email Richard Rost   8 days ago

Put Multiple Subreports on One Printable Page


 S  M  L  XL  FS  |  Slo  Reg  Fast  2x  |  Bookmark Join Now

In this video, we will talk about sub-reports in Microsoft Access and how they can be used to combine multiple sets of data, such as orders and contact notes, into a single printable report. I will explain when to use sub-reports versus simpler report structures, walk through building sub-reports for related tables, and show how to integrate them into a parent report connected by fields like Customer ID. We will discuss common issues such as setting Can Grow and Can Shrink properties, naming fields, and maintaining report performance.

Corinne from Fairfield, Connecticut (a Silver Member) asks: I'm building a customer summary for my boss, and he wants to see orders, contact notes, and a few other lists all together. I know how to do this as separate reports, but he wants it all on one sheet. Right now I'm copying everything into Word just to make it fit. Is there a better way to have Access print it all at once?

Members

In the extended cut, we will cover advanced sub-report techniques. I will show you how to prevent blank gaps when a sub-report has no data, the cleanest way to make headings and sections disappear automatically, and how to build dynamic sub-reports using VBA so users can swap in different sub-reports on the fly with a combo box or automatically hide them. We will learn how to let the user pick which sub-reports to display, like contacts, orders, or any other list.

Silver Members and up get access to view Extended Cut videos, when available. Gold Members can download the files from class plus get access to the Code Vault. If you're not a member, Join Today!

Prerequisites

Links

Recommended Courses

Learn More

FREE Access Beginner Level 1
FREE Access Quick Start in 30 Minutes
Access Level 2 for just $1

Free Templates

TechHelp Free Templates
Blank Template
Contact Management
Order Entry & Invoicing
More Access Templates

Resources

Diamond Sponsors - Information on our Sponsors
Mailing List - Get emails when new videos released
Consulting - Need help with your database
Tip Jar - Your tips are graciously accepted
Merch Store - Get your swag here!

Questions?

Please feel free to post your questions or comments below or post them in the Forums.

KeywordsHow To Use Subreports In Microsoft Access To Put Multiple Reports On One Printable Page

TechHelp Access, sub-reports, combine reports one page, parent child report, customer summary report, link master and child fields, grouping levels, related tables, print one page, can grow can shrink, dynamic sub-report, member extended cut, show hide sections, swapping sub-reports, TechHelp free template

 

 

 

Comments for Subreports
 
Age Subject From
6 daysGood StuffBrent Rinehart

 

Start a NEW Conversation
 
Only students may post on this page. Click here for more information on how you can set up an account. If you are a student, please Log On first. Non-students may only post in the Visitor Forum.
 
Subscribe
Subscribe to Subreports
Get notifications when this page is updated
 
Intro In this video, we will talk about sub-reports in Microsoft Access and how they can be used to combine multiple sets of data, such as orders and contact notes, into a single printable report. I will explain when to use sub-reports versus simpler report structures, walk through building sub-reports for related tables, and show how to integrate them into a parent report connected by fields like Customer ID. We will discuss common issues such as setting Can Grow and Can Shrink properties, naming fields, and maintaining report performance.
Transcript Trying to squeeze multiple reports onto one clean, printable page in Microsoft Access can feel like trying to herd cats.

Welcome to another TechHelp video brought to you by AccessLearningZone.com. I am your instructor, Richard Rost. Today we are going to talk about sub-reports and how to use them to combine multiple sets of data into a single report. If you have ever needed to show things like orders, contacts, or other lists together for the same customer, this is exactly what you need.

Those tables are related to a parent table but not necessarily to each other. You can use sub-reports to display completely unrelated information. We will talk about that in a few minutes.

Now before we get started, this is an expert-level video. What does that mean? Well, it is not quite developer, so you do not need any VBA for this stuff. But it is a little bit beyond the basics. So you should have a good, firm grasp of Microsoft Access basics and how to build reports and similar things before watching this video.

Specifically, some prerequisites: go watch my invoicing video so you understand how I built this invoice. Also, go watch my report grouping levels video. Understanding these will definitely give you a better feel for what sub-reports are and why they are useful. These are free videos. They are on my website and on my YouTube channel. Go watch those first, then come on back.

Today's question comes from Corinne in Fairfield, Connecticut, one of my platinum members. She says, I am building a customer summary for my boss, and he wants to see orders, contact notes, and a few other lists all together. I know how to do this as separate reports, but he wants it all on one sheet. Right now I am copying everything into Word just to make it all fit. Is there a better way to have Access print it all at once?

Yes, this is a perfect example of when you want to use sub-reports. So let's talk about what sub-reports are and let's talk about when you do and do not want to use them, because I see people overusing sub-reports all the time.

If you are working with a simple one-to-many relationship like orders and order details, you can do it in a simple report. You do not even need a grouping level most of the time. You can build a query that joins the two tables together, put the order information in the report header or a group header, and then let the detail items sit in the detail section. Since the order information repeats for each detail row, Access handles that just fine and that is the simplest approach. That is the method that I show in my invoicing video, and that is part of my TechHelp free template.

We have the customer, the customer has orders, and here we have the order information and the order details - two separate tables, order and order details. What we do to make an invoice report is we simply bring those together in one query. That is our order invoice query. That brings together the customer information so we have the customer's name and address, but primarily it is between the order table and the order details table. Order detail query just adds some additional like the extended price, but that is just a calculated field. The point is, you have got the order information that repeats; it is the same on every order, and then you have the details over here.

When we bring that into a report, which is our invoice report, it is real simple. All the stuff that repeats for the entire invoice is up here in the headers, and then the details are the detail items. You do not need any grouping levels, you do not need any sub-reports. It is just put together. Watch my invoicing video to see how this works.

The next layer of complexity is using report grouping levels. I show how to use these in this video, my grouping level video. In this database, we build a customer contact query that has each customer and then all of their contacts, and this is grouped by customer.

Going to design view here, you will see this guy is based on the customer. Our contact query, customer contact query, is over here. It brings together the customer and all of the contact information. Then what we do is we group it by customer. So in here, we add a grouping level, which is up here on the report design - group and sort, right there. There is our grouping level. And then in here, everything is grouped under the customer ID header. Go watch this video for this one.

That is a real simple one, and then we have another slightly more advanced one with some grouping levels, but both of those involved records that were directly related to the parent, with no other unrelated bits of information.

Sometimes you want to have a parent record, like the customer, and then you want to have child records that are related to the parent, but not to each other. That is where sub-reports really shine, because you can have the customer as the parent and have separate independent sub-reports - one for the orders, one for the contacts. They are related to the parent, but they are not related to each other. The contact history has nothing to do with the orders except for the fact that they are both related to the parent, which is the customer.

It also works well with stuff that is totally unrelated. You might want to have a parent document that is just like a document holder, and then you have got inventory over here and sales over here and maybe employee schedules over here. They could be completely unrelated, but you can put them all into a master report. Think of it like how Word has documents and sub-documents (which do not get me started on how awfully those are implemented).

I am going to show you how to do this where we have a parent report that is based on the customer, and then the child reports will be based on stuff that is related to the customer, but they are not related to each other.

Here I am in my TechHelp free template. This is a free database. You can grab a copy from my website if you want one.

It is always easiest to start out by making the sub-reports first. Let's make one for our orders. We have already got, let us see, an order query here. This guy, order query, has each customer, the order date, and I think we just put credit limit in here. We are going to pretend this is the order total. I just made a simple query for this.

So we are going to make a quick report off of that to be our sub-report for the orders. I have got a blank report here. I am just going to copy this guy - copy, paste. We are going to call this the order report, my order sub-report. You can call it order sub-report if you want to. Sometimes I do that so that I know this is a report that does not run by itself. It is included in something else, but not always, because a lot of the times I do design these so they can run on their own.

Right-click, design view. We will just come in here real quick. I am just going to collapse these sections; we really do not need them, like so. We are going to go in and turn this off; we do not need this. I am going to go into the properties here for the record source. This will be our order query, that query I just showed you. Then I will go to add existing fields. We are going to bring in the order date, the "is paid," the description, and the credit limit. I am just going to bring those fields in over here, drop them there, delete the labels, and just slide this stuff up here like so.

Again, I am doing this just to be quick for class. You are going to want to make this nice and pretty. Where is this? Close this, slide this up further so I can grab that edge, bring it in, because sometimes I want to have these side by side, so it helps to have these narrow.

All right, save it. Close it. Let's take a peek at what we have here. I am going to go to print preview. That looks pretty good. Now I am seeing everything for everybody. These are all the orders in the system. When we drop this into the parent report, that link master field and link child fields are going to make it so we only see the orders for this customer. So that one is good; that is all set.

Let's do the same thing for the contacts now. And yes, if you want to put totals in there and such, it works the same way as form footer totals - just the same way in a report. I have got a whole separate video on that, which I will put a link to down below.

Let's make another sub-report. Again, I am going to copy the blank report - copy, paste. We are going to make this the contact report. In this guy, design view, again, I am just going to shrink this stuff up. We will delete that. We will make this narrower, about so wide. We have to bind it to a table. Let us make this go right to the contact table. We will get rid of that filter and that order by. Let's add existing fields. Let's just bring in the contact date and the description; that is enough for now. Again, delete that stuff: contact date, description. You can put totals or whatever you want in here.

Okay, fine. Save it. Close it. Print preview. That looks good. Well, we have some pound signs in there. Always make sure you take care of that first. I only want this to be short dates. So we are going to open this guy up, go to format, make this short date, and that should fix that problem. Maybe you will left-align it or whatever - make it pretty on your own. I do not need to teach you how to do all that stuff; you already know how to do all that. Print preview: there we go, that looks much better.

Again, this is the contacts for everybody in the system.

Quick intermission: if you are enjoying this video, hit that like and subscribe for me right now. It helps me out.

Now, as far as the customer report goes, we already have one. It is this thing; it has all kinds of stuff on it. We are going to scale this thing back a little bit. I am going to go into design view on here. Let us get rid of this big notes field. I am going to get rid of everything except first name and last name. We will put first name here and last name there.

So now we have a lot of room in here for our sub-reports. I am going to put my contacts on the left and orders on the right.

Put the contacts here. This is one of those rare instances where I am going to leave this label here, because I am going to change this to say "Contacts." You could do some fancy stuff, maybe make it a little bit bigger, bold it, make it black so you can actually read it - that looks decent.

If you want to put orders over here, you can, or you can put it underneath; either way works. Bring the orders in, slide it up here. Keep in mind your page size. Make sure you have enough room in here. There are orders. Remember, these objects are going to grow and shrink; we will check those properties in a second. Make sure you leave enough room for both. One might be really long, one might be really short, so it might still look off balance. Format paint, drop that on orders, good.

Shrink that up, save it, right-click, print preview. We get the page with the warning. That is fine. Look - there we go. Contacts are over here, orders are over there. That is for this customer. Down a little bit, there is James Kirk. This guy does not have any orders, so nothing shows up there. Jean-Luc Picard. You can play with your settings - you can make it so each customer starts on its own page, or whatever you want.

But the point is, we now have two sub-reports inside this parent report, and they are related to the parent.

A couple of things to check: if you are not seeing any data, make sure your fields are named properly. When you drop the sub-report object in, under Data, you have link master fields and link child fields. They are both Customer IDs for that one and for this one. As long as Access sees that you have that same ID field in there, it will make that relationship for you. If you have named it something different - and sometimes I do, for example, with child tables where I have called the primary or the foreign key (which is the primary key in another table) something different - usually that will happen in cases where, let us say in the customer record, I have a Sales Rep ID, a Service Tech ID, maybe a Manager ID, and all three of those IDs point to the employee table, as each one of those are employees. So, in the customer table, the foreign key has a different name than the key in the other table. In that case, you might have to come in and set these manually. I have a whole separate video on that. There is that video for you, link below.

Remember to check your Can Grow and Can Shrink under the Format tab (down here). If you want this space to go away if there are no contacts and no orders, make sure these are both set to Yes for Can Shrink, as the default is No. Otherwise, it will always keep this much space. Also, make sure the same setting is in your detail section. Remember, it is the object and the section it is in; they both have Can Grow and Can Shrink properties. I think I set this to Yes in the video where we made this customer report.

The report width problem: when I dropped this in, it got a little bit too wide. We need to reduce that. Save it, close it, print preview again. Customers are here - customer report. There you go!

Just a performance note: yes, you can have sub-reports inside of sub-reports, but do not go crazy. Do not have five levels deep - Access is going to start running slow. Two levels should be more than enough for most purposes. I think I have built one with three, but that is about it. You can see here on some of these how it is shrinking up to this one.

If you want to learn more about sub-reports, I cover them in more detail in my Access Expert Level 9 class. I will put a link to that down below.

In the extended cut for members, we will get a bit more advanced with the sub-reports. We will talk about how to handle situations where the sub-report has no data and you do not want big blank gaps in your report. I will show you what works and does not, and the cleanest way to make those headings and sections disappear automatically. We will also learn how to build dynamic sub-reports using a little bit of VBA so you can swap the different sub-reports in and out on the fly. So if you want the sub-report to show contacts, you can show contacts; if you want to show orders, you can show orders. The user can pick that with a combo box. Or you can show just the customer parent report and hide the sub-reports automatically, whichever you want. You can easily extend this concept to do multiple sub-forms where you can pick, for example, contacts, orders, favorite flavor of ice cream, whatever you want.

That is in the extended cut for the members. Silver members and up get access to all of my extended cut videos - not just this one, but all of them, and there are hundreds now. Gold members get access to the code vault and can download these databases that I build in the TechHelp videos. Everybody gets free training - one free course a month, not just the TechHelp videos, but my actual course library.

So I do not know what you are waiting for - click that blue join button right now.

Today's big takeaway is this: use sub-reports when you need to combine multiple related or even unrelated lists into one clean, cohesive report. If you have been trying to copy and paste these things together using Excel or Word or whatever, this is a much better way to do it.

Do me a favor: post a comment down below. Let me know how you liked today's video and how you plan to use sub-reports in your databases.

That is going to be your TechHelp video for today, brought to you by AccessLearningZone.com. I hope you learned something. Live long and prosper, my friends. I will see you next time - and members, I will see you in the parking lot.

Every time I say that, I feel like Happy Gilmore. He said, I will meet you in the parking lot. That is Mr. Gilmore's jacket.

All right, take care, everyone.
Quiz Q1. What is the main benefit of using sub-reports in Microsoft Access?
A. To group related fields within a single query
B. To combine multiple related or unrelated data sets into a single, printable report
C. To improve the speed of database queries
D. To create visual charts and graphs

Q2. In which situation would you not generally need to use sub-reports?
A. When combining unrelated data tables on one report
B. When displaying a simple one-to-many relationship, like orders and order details
C. When combining customer orders and contacts on a single page
D. When printing multiple data lists for the same parent record

Q3. What prerequisite knowledge does the instructor recommend before learning about sub-reports?
A. How to build tables and simple queries
B. Advanced VBA programming
C. Watching the invoicing and report grouping levels videos
D. SQL server integration

Q4. Sub-reports are especially useful when:
A. All child tables are directly related to each other
B. You only have a single data source
C. Child datasets are related only to the parent but not to each other
D. You are working with unrelated stand-alone forms

Q5. What should you check if your sub-report is not showing any data in the parent report?
A. Whether the sub-report can be run independently
B. The link master fields and link child fields settings
C. The total number of records in the parent table
D. If the sub-report design uses color formatting

Q6. When inserting sub-reports into a parent report, why is it important to set 'Can Grow' and 'Can Shrink' properties?
A. To enable sorting of records alphabetically
B. To prevent performance issues with nested reports
C. To allow dynamic adjustment of space based on data presence
D. To force the report to print in color

Q7. In what situation might you have to manually set the link fields between a parent report and a sub-report?
A. When both tables use the same field name for related fields
B. When the foreign key in the child table uses a different name from the parent table's primary key
C. When both reports are based on the same query
D. When there are no fields to link

Q8. What is one potential performance concern mentioned about using sub-reports?
A. Having more than one sub-report in a parent report
B. Nesting too many levels of sub-reports can slow down your database
C. Using group levels instead of sub-reports
D. Creating reports with too few fields

Q9. Which property should be checked in both the sub-report object and its containing section to ensure minimal blank space when there is no data?
A. Visible property
B. Can Shrink property
C. Font Size property
D. Locked property

Q10. What does the video suggest as a cleaner, more efficient alternative to copying and pasting multiple reports into Word or Excel?
A. Using VBA code exclusively
B. Combining reports using sub-reports in Access
C. Exporting all reports as separate PDFs
D. Printing each report individually

Answers: 1-B; 2-B; 3-C; 4-C; 5-B; 6-C; 7-B; 8-B; 9-B; 10-B

DISCLAIMER: Quiz questions are AI generated. If you find any that are wrong, don't make sense, or aren't related to the video topic at hand, then please post a comment and let me know. Thanks.
Summary Today's video from Access Learning Zone is all about using sub-reports in Microsoft Access to organize multiple sets of related or even unrelated data into a single, polished report. If you have ever struggled to print several reports together on one page - such as orders, contacts, and other lists for the same customer - then sub-reports are the ideal solution.

Before getting started, I should mention that this is considered an expert-level topic. We are not getting into VBA code, but you do need a solid understanding of Access basics, especially how to build and design reports. If you have not yet learned about creating invoices or report grouping, I recommend checking out my free videos on those topics before diving into sub-reports since a grasp of those concepts will make this lesson much clearer.

The reason for this lesson came from a question about how to create a customer summary that includes several types of information - like orders and contact notes - on the same printed page. Many people, when faced with this challenge, end up cutting and pasting their data into Word to arrange things manually. There is a much easier approach using Access.

First, it is important to understand when sub-reports are and are not necessary. When you are dealing with something simple such as a one-to-many relationship, like orders and their order details, you do not need sub-reports. Just use a basic report, possibly with grouping, that pulls both tables together in one query. This method works well for displaying items like invoices, where all you need is a single report showing parent and child records together.

Grouping levels become useful when you need to show a list of items that are all directly related to a parent table, like a list of all contacts for each customer. Again, this does not require sub-reports - just some simple report grouping to keep each customer's contacts grouped together. These first two approaches only work when you are working within strictly related tables and straightforward data.

However, problems arise when you want to show different sets of information that are related to the parent record, but not directly related to each other. For example, you might have both orders and contact notes for a customer, but these two sets of data are not related to each other - only to the customer. This is where sub-reports become invaluable. They allow you to display each set of information as its own separate sub-report inside the main, or "parent," report. This technique also works for grouping completely unrelated items together on one page, simply because you want all the information together for convenience.

Let me walk you through how to set this up, using my free TechHelp template database as an example. It is easiest to start by creating the sub-reports. For instance, I began by making a report for orders, using a simple query that lists the orders along with the customer. I designed a report based on this query and adjusted the layout so it would fit nicely as a sub-report. It often helps to keep these sub-reports narrow so that you can place them side by side in the parent report if needed.

Once the order sub-report is finished, it is just as easy to make a contact sub-report. Again, I copied a blank report, set it to the contact data source, and laid out the fields that should appear, such as the contact date and a description field. Remember to set properties like the date format so that everything displays cleanly.

Now, with those sub-reports ready, it is time to prepare the parent report - which in this case is the customer report. To give space for the sub-reports, I pared down the main report so it only showed the essential fields, like first and last name. Then I dropped the contact sub-report into one part of the report and placed the order sub-report in another, arranging them so both fit within the printable page.

A few important tips: when you add sub-reports, Access will try to automatically link them to the parent report using matching fields, usually the customer ID. Check that these link master and link child fields are correct, and adjust them manually if necessary, especially if your foreign key fields are named differently in your tables. Make sure to set the Can Grow and Can Shrink properties on your sub-report objects and the report sections so that space is used efficiently - if there are no contacts or orders for a customer, that space will disappear rather than showing big empty gaps.

If at any point you find your report is getting too wide or spilling over to extra pages, just adjust the widths of your sub-reports and realign them inside the parent report's layout.

A word about performance: it is possible to nest sub-reports within sub-reports, but don't take it too far. Keeping it to two levels is generally safe, but adding more can cause Access to slow down significantly.

For those interested in learning even more about sub-reports, my Access Expert Level 9 class covers this subject in greater depth. In the extended cut for members, we'll look at more advanced sub-report techniques. I'll demonstrate how to avoid unsightly blank spaces when a sub-report has no data, the best way to manage headings and sections so they disappear automatically, and even how to swap out sub-reports dynamically using a combo box and some light VBA code. This allows users to choose which sub-report they want to view - or hide them all, showing only the parent data. This approach makes it easy to present multiple different sets of data, including whatever is most relevant for your users.

To sum up, today's lesson shows that sub-reports are the answer whenever you need to combine multiple related or unrelated lists into one neat, printable report in Access. You no longer have to resort to pasting everything together in Word or Excel - Access has the tools to do it all natively, cleanly, and efficiently.

If you found this helpful, let me know in the comments how you plan to use sub-reports in your own databases.

A complete video tutorial with step-by-step instructions for everything covered here is available on my website at the link below. Live long and prosper, my friends.
Topic List Introduction to sub-reports in Microsoft Access
Differences between grouping levels and sub-reports
Choosing when to use grouping vs sub-reports
Creating a sub-report for orders data
Designing and formatting the order sub-report
Binding sub-reports to queries or tables
Adding fields and formatting sub-report controls
Creating a sub-report for contacts data
Formatting date fields in sub-reports
Shrinking and resizing sub-report layouts
Preparing the parent customer report for sub-reports
Inserting sub-reports into the parent report
Arranging sub-reports side by side in the parent report
Linking sub-reports to the parent report with Link Master/Child Fields
Configuring Can Grow and Can Shrink properties for sub-reports
Adjusting report width for clean print layout
Performance considerations with multiple sub-report levels
Troubleshooting missing data in sub-reports
Article Bringing multiple sets of information together onto a single, printable page in Microsoft Access can be a real pain, especially if you are used to working with separate reports and then manually combining results in Word or Excel. The best solution to this problem is using sub-reports. Sub-reports allow you to display multiple related or completely unrelated sets of data together in a single report layout, making your end product a lot cleaner and more professional.

To understand when and why to use sub-reports, it is important to realize that they are not always necessary. For example, if you have a simple one-to-many relationship, such as orders and order details, you can handle that just by building a query that joins the two tables and then base your report on that query. All the repeating information, like order headers, goes in the report headers, and the detail items go in the detail section. This approach does not require sub-reports or grouping levels, and it is the simplest way to go when your data structure allows.

If you need to group your records by a field, like showing a list of contacts grouped under each customer, you can simply use report grouping levels. In your query, include your customer table and your contact table joined on CustomerID. In the report, add a grouping level on the CustomerID field. This nests all contacts under each customer, and again this does not require sub-reports.

However, sub-reports really shine when you have a parent record, such as a customer, and you want to show several sets of related child records that are not related to each other. For example, you might want to show both orders and contact notes for a customer. Orders and contacts are both related to the customer, but not to each other. Sub-reports let you display them independently, even though they share the same parent. You can even use sub-reports to show totally unrelated information on the same page, such as sales data, employee schedules, inventory, and more, all wrapped into one "master" report.

Let me guide you through the steps of combining different sets of data - specifically orders and contacts - into a single customer summary report using sub-reports.

The first step is to create the sub-reports themselves. Start by making one for the orders. Create a simple query (let's call it "OrderQuery") that brings together the customer's information alongside order details like order date, and use a field for order total if needed. Then, use this query as the record source for a new report. You can create a blank report and then set its Record Source property to your "OrderQuery." Add the relevant fields (for example, OrderDate, IsPaid, Description, Total) to the report design, remove unnecessary labels or sections, and tidy it up so it fits neatly. If you make it narrow now, it will be easier to arrange multiple sub-reports side by side later.

Before moving on, preview your sub-report to make sure it shows what you expect: in this step, it will list all orders for all customers, but once it's part of the parent report, the linking fields will ensure it only displays records for the appropriate customer.

Repeat this same process for your contacts. Create a "ContactReport" sub-report. In this case, use the contacts table or a query as the record source, and add only the fields you care about, like ContactDate and Description. Again, format the date field if needed so that it displays properly (for example, as short date to avoid pound signs). Remove unneeded labels and sections, tidy it up, and make the sub-report narrow if you plan to display more than one side by side.

Once your sub-reports are ready, move to the parent report. You may already have a basic customer report; if so, open it in Design View, and resize or remove unnecessary fields or sections to make room for your sub-reports. For this example, you might just display First Name and Last Name at the top, leaving space beneath or beside them to place the sub-reports.

To add a sub-report to your main report, open the main report in Design View and use the Subform/Subreport tool in the Controls toolbox. Drop it onto the report where you want it to appear, and when prompted, choose the report you just created (for example, select ContactReport for contacts). Repeat this for orders, selecting your OrderReport sub-report.

It is a good idea to label each section clearly (such as "Contacts" and "Orders") so the reader knows what they are looking at. You can align the sub-reports side by side or stack them top and bottom, depending on your report layout and available space. Remember to factor in your page size to avoid layout problems at print time.

After placing your sub-reports, check their properties. Under the Data tab in each sub-report's property sheet, make sure the Link Master Fields and Link Child Fields properties are set to the fields that connect the data (for example, CustomerID in both). Access will often set this up for you automatically if the relationships and field names are clear and matching. If the field names differ, you may need to enter them manually.

Also, check the Can Grow and Can Shrink properties (found on the Format tab) for both the sub-report control and the section it resides in. Setting these to Yes allows the sub-report space to expand or shrink depending on how many child records exist. If Can Shrink is set to yes, empty sub-reports will collapse so there isn't a big blank space on the page when a customer has no orders or contacts.

Save your report and switch to Print Preview to review your work. You should see each customer's summary at the top (first and last name), with the contacts and orders listed below or beside them. Each sub-report will only show records relevant to the current customer, thanks to the linking fields.

Be aware of performance when nesting sub-reports. You can nest sub-reports within sub-reports, but don't go overboard with multiple levels; two levels is usually plenty for most applications. Too many nested sub-reports will slow down your report performance.

Sub-reports are a great tool for combining multiple related - or even unrelated - data sets in one cohesive report. They eliminate the need for manual copying and pasting into Word or Excel and automate the print layout, saving you time and reducing room for errors. Whether it is customer orders and contact notes, or data from completely disconnected tables, sub-reports make it possible to present it all in a clean, organized fashion.

The key takeaway is to use sub-reports any time you need to display more than one collection of records, each associated with the same parent, or when you need to bring together different types of information onto a single report for efficient printing and presentation. Once you understand how to set up sub-reports and link them to the parent, you will find plenty of uses for this feature in your projects.
 
 
 

The following is a paid advertisement
Computer Learning Zone is not responsible for any content shown or offers made by these ads.
 

Learn
 
Access - index
Excel - index
Word - index
Windows - index
PowerPoint - index
Photoshop - index
Visual Basic - index
ASP - index
Seminars
More...
Customers
 
Login
My Account
My Courses
Lost Password
Memberships
Student Databases
Change Email
Info
 
Latest News
New Releases
User Forums
Topic Glossary
Tips & Tricks
Search The Site
Code Vault
Collapse Menus
Help
 
Customer Support
Web Site Tour
FAQs
TechHelp
Consulting Services
About
 
Background
Testimonials
Jobs
Affiliate Program
Richard Rost
Free Lessons
Mailing List
PCResale.NET
Order
 
Video Tutorials
Handbooks
Memberships
Learning Connection
Idiot's Guide to Excel
Volume Discounts
Payment Info
Shipping
Terms of Sale
Contact
 
Contact Info
Support Policy
Mailing Address
Phone Number
Fax Number
Course Survey
Email Richard
[email protected]
Blog RSS Feed    YouTube Channel

LinkedIn
Copyright 2026 by Computer Learning Zone, Amicron, and Richard Rost. All Rights Reserved. Current Time: 3/5/2026 6:27:14 PM. PLT: 0s
Keywords: TechHelp Access, sub-reports, combine reports one page, parent child report, customer summary report, link master and child fields, grouping levels, related tables, print one page, can grow can shrink, dynamic sub-report, member extended cut, show hide se  PermaLink  How To Use Subreports In Microsoft Access To Put Multiple Reports On One Printable Page