How to Open and Edit an Access Email from a Form or Report
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.

- 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.
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.
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.
Open your Access database and press ALT + F11 to open the Microsoft Visual Basic for Applications (VBA) editor.
Find the module or the button click event (e.g., cmdSendEmail_Click) where you want to trigger the email generation.
Enter the following code: DoCmd.SendObject acSendReport, "YourReportName", acFormatPDF, "recipient@example.com", , , "Daily Report Subject", "Please find the report attached.", True
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.

Change .Send to .Display in Outlook Object Model Code
If you are using the Outlook Application object to create the email, change the sending method to display the draft.
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.

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.




