logo
search
Send & Receive Issues

How to Open and Edit an Access Email from a Form or Report

Steve KSteve K Oct 15, 2026 869 views

Question details

The user wants to generate daily emails from Microsoft Access, attach a report or form, and display the blank email for completion before sending it to supervisors.

How to Open an Email from an Access Form or Report Before Sending
Product
Microsoft Access
Device & OS
not provided
Scenario
Automating email generation from an Access database to send reports to supervisors while allowing manual edits before sending.
Observed behavior
The email does not appear on the screen, and no error message is displayed when the macro or VBA code runs.
Before you start

Ensure that Microsoft Outlook is installed, fully configured with an active email profile, and set as your default email client before running the Access code.

Solution 1Recommended

Use the DoCmd.SendObject Method in VBA

Use the built-in DoCmd.SendObject command with the EditMessage parameter set to True to preview the email.

The DoCmd.SendObject macro or VBA method allows you to output an Access object (like a Report or Form) directly into an email. By ensuring the final parameter is set to True, you force the email client to open the draft instead of sending it in the background.

1
Open the VBA Editor

Open your Access database and press ALT + F11 to open the Microsoft Visual Basic for Applications (VBA) editor.

2
Locate the Event Procedure

Find the module or the button click event (e.g., cmdSendEmail_Click) where you want to trigger the email generation.

3
Insert the DoCmd.SendObject Code

Enter the following code: DoCmd.SendObject acSendReport, "YourReportName", acFormatPDF, "recipient@example.com", , , "Daily Report Subject", "Please find the report attached.", True

4
Test the Code

Save your code and return to Access. Click the button to run the code. An Outlook email window will pop up with the report attached, allowing you to edit the message before hitting send.

Use the DoCmd.SendObject Method in VBA
Handling Multiple Recipients: If you are sending emails to multiple supervisors, you will need to wrap this command inside a Recordset loop (Do While Not rs.EOF) to generate the appropriate report for each recipient.
Free Microsoft Office alternative

Looking for a Lightweight Office Suite? Try WPS Office

While Microsoft Access is a specialized database tool, you can manage all your exported Access reports, spreadsheets, and documents seamlessly with WPS Office. It is a lightweight, fully compatible, and free alternative for Word, Excel, and PowerPoint files.

Free and lightweight Office suite alternativeFully compatible with Microsoft Word, Excel, and PowerPoint formatsFamiliar user interface for a quick and seamless transitionBuilt-in PDF editor perfect for viewing and sharing exported reports
QA img-9

Frequently Asked Questions

Why does DoCmd.SendObject do nothing without showing an error?

If the command fails silently, it usually means Microsoft Outlook is not set as the default email program in Windows, the Outlook profile is not fully configured, or your VBA code lacks error handling (e.g., On Error Resume Next is hiding the error).

How can I loop through multiple records to send individual emails?

You can open a Recordset in VBA using DAO or ADO. Use a 'Do While Not rs.EOF' loop to generate an email for each record. Inside the loop, pass the recipient email and specific criteria from the recordset fields to your SendObject command, then move to the next record with 'rs.MoveNext'.

Can I attach multiple files using DoCmd.SendObject?

No, the DoCmd.SendObject method only allows you to attach one specific Access object (such as a single report or form) at a time. To attach multiple files, you must use the Outlook Object Model in VBA.