> ## Content Index
> Fetch the complete content index at: https://nolongerset.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Never Forget to Set Your Report Caption Again
- URL: https://nolongerset.com/report-caption-ctlsrc/
- Published: 2023-03-07T04:22:00.000Z
- Updated: 2026-05-08T12:51:13.000Z
- Description: With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
- Author: Mike Wolfe
- Tags: Reports, #Import 2026-05-20 02:59

Part of creating a professional Access application is paying attention to the details.

One example of this is defining captions for your forms and reports. If you don't define a caption, Access will display the object's name. That's not what you want, as the names of your forms and reports should follow a developer-friendly naming convention. 

A good *developer*\-friendly naming convention will not be *user*\-friendly. 

Consider these common object naming conventions:

- No spaces in object names (e.g., `MyReport`)
- Short object-specific prefixes (e.g., `rptMyReport`)
- Abbreviations to keep names short (e.g., `QtrlyProfitLossStmt`)

Showing any of the above names to your users is not the end of the world, but it makes your application look unpolished.

![](https://storage.ghost.io/c/eb/d7/ebd732c1-5f03-4f07-b386-5d08557e15c9/content/images/2023/03/image-18.png)

## The Report Caption Property

Microsoft Access provides us with a [report Caption property](https://learn.microsoft.com/en-us/office/vba/api/access.report.caption) to address this issue:

> Gets or sets the title of the report in Print Preview.

In addition to setting the title of the report in Print Preview, it also becomes the default file name when a user saves a report to PDF via a virtual printer, such as PDFCreator.

![](https://storage.ghost.io/c/eb/d7/ebd732c1-5f03-4f07-b386-5d08557e15c9/content/images/2023/03/image-23.png)

![](https://storage.ghost.io/c/eb/d7/ebd732c1-5f03-4f07-b386-5d08557e15c9/content/images/2023/03/image-19.png)

## It's Easy to Forget

I've lost count of how many times over the years that I've forgotten to set this property. 

I usually realize my mistake while demonstrating the new report to the end user and it irks me every time. After at least the dozenth time (*is that a word?*), I decided to finally do something about it.

My solution was to change the report's heading text from a Label control to a Textbox control and set the Textbox control equal to the report's caption property.

1. Create a text box in your Report Header or Page Header.
2. Set its ControlSource to `=[Report].[Caption]`
3. Set the report's Caption property in the Property Sheet

![](https://storage.ghost.io/c/eb/d7/ebd732c1-5f03-4f07-b386-5d08557e15c9/content/images/2023/03/image-20.png)

![](https://storage.ghost.io/c/eb/d7/ebd732c1-5f03-4f07-b386-5d08557e15c9/content/images/2023/03/image-22.png)

![](https://storage.ghost.io/c/eb/d7/ebd732c1-5f03-4f07-b386-5d08557e15c9/content/images/2023/03/image-23.png)

![](https://storage.ghost.io/c/eb/d7/ebd732c1-5f03-4f07-b386-5d08557e15c9/content/images/2023/03/image-21.png)

Hopefully, you spend a bit more time than I did here when you style your report's title control...

Of course, you still need to remember to set the report's Caption property. But now if you forget, the mistake will be glaringly obvious, as there will be a big empty spot where the report's title should appear.

## Especially Handy for Report Templates

This trick comes in especially handy on a report template. 

You can style the `=Report.Caption` text box (font, size, position, etc.) exactly the way you want it in your template. Then, when you create a new report from the template, the report's title will already be formatted and ready to go. All you have to do is set the report's Caption property. 

Personally, I use a function I wrote called`DesignNewReport` which generates new reports from scratch, using the same approach as in my [**DesignNewForm** function](https://nolongerset.com/designnewform/).

Here's the relevant excerpt from my `DesignNewReport` function:

```vba
With CreateReportControl(Rpt.Name, acTextBox, acPageHeader)
    .FontSize = 14
    .FontName = "Arial"
    .FontBold = True
    .TextAlign = 2    'Center
    .ControlSource = "=[Report].[Caption]"
    .Height = 0.3125 * TwipsPerInch
    .Width = TwipsPerInch * IIf(IsLandscape, 6, 3.5)
    .Left = (Rpt.Width / 2) - (.Width / 2)
    NewTop = .Height
End With
```

*Cover image created with [Microsoft Designer](https://designer.microsoft.com/)*