How to Make an Access Subform Resize When the Main Form is Maximized
Question details
The user needs a way to make an embedded subform display more rows or resize dynamically when the main parent form is maximized in Microsoft Access.

- Product
- Microsoft Access
- Device & OS
- not provided
- Scenario
- Maximizing a main Access form on the screen in order to view more data records simultaneously in its subforms.
- Observed behavior
- The parent form maximizes successfully, but the subform retains its original dimensions. Setting the 'Can Grow' property and attempting to maximize the subform itself do not increase its visible size on screen.
Before modifying your Access database layout or writing VBA code, ensure you have created a backup copy of your file. Note that the 'Can Grow' property only applies to printed pages or print previews, not the active on-screen display.
Use VBA Code to Resize the Subform Control Dynamically
Since Access does not natively scale controls on screen, you must add VBA code to the main form's Resize event to manually adjust the dimensions of the subform control.
By binding specific Width and Height adjustments to the main form's On Resize event, the subform will automatically scale to fill the available space whenever the user maximizes or changes the parent window size.
Right-click your main form in the Navigation Pane and select 'Design View'.
Click the small square in the top-left corner of the form design grid to select the entire form, then press F4 to open the Property Sheet.
Navigate to the 'Event' tab in the Property Sheet, locate the 'On Resize' property, click the ellipsis (...) button, and select 'Code Builder'.
Write VBA code to set the subform control's Width and Height relative to the InsideWidth and InsideHeight properties of the main form. Ensure you account for margins and other controls.
Save the VBA module, return to Access, switch to Form View, and maximize the window to verify that the subform expands correctly.

Organize Multiple Subforms Using a Tab Control
If you have multiple subforms cluttering the layout, placing them in a Tab Control provides more usable screen space without requiring complex resizing code.
Open the Subform Data as a Separate Independent Form
Instead of embedding the subform, launch it as its own standalone form filtered by the parent ID to maximize screen real estate.
Looking for a Free, Lightweight Alternative to Microsoft Office?
While WPS Office does not include a direct equivalent to Microsoft Access for database management, it provides a highly compatible, completely free alternative for handling your everyday document, spreadsheet, and presentation tasks seamlessly.
- 1. Download the Installer: Visit the official WPS Office website and download the free installer for your operating system.
- 2. Install WPS Office: Run the setup file and follow the simple on-screen instructions to install the suite on your device.
- 3. Start Creating: Open WPS Office and instantly start editing your existing Microsoft Word, Excel, and PowerPoint files without formatting issues.

Frequently Asked Questions
Why does the 'Can Grow' property not work for my Access form?
The 'Can Grow' and 'Can Shrink' properties in Microsoft Access are designed specifically for printed reports and Print Preview modes. They do not affect how forms are displayed or dynamically resized on your computer screen.
What does DoCmd.Maximize actually do in Access?
The DoCmd.Maximize macro action maximizes the active window within the Access application frame. When called on a main form, it expands the parent form's window, but it does not automatically stretch or scale the controls (such as subforms) housed inside it.
How can I view more rows in an Access subform without using VBA?
The easiest non-VBA alternatives are organizing multiple subforms within a Tab Control to dedicate more screen space to each, or adding a button that opens the subform data as an entirely separate, independent form filtered by the current main record.




