How to Send Email from Access Using Different Outlook Accounts
Question details
The user needs to configure a Microsoft Access form to send emails through specific, alternate Outlook accounts when multiple accounts are configured in the Outlook profile.

- Product
- Microsoft Access / Microsoft Outlook
- Device & OS
- not provided
- Scenario
- Automating outbound emails from a Microsoft Access database form, requiring the sender address to match a specific account rather than the default Outlook profile.
- Observed behavior
- When triggering the email via Access VBA, selecting the alternative sender address fails to work correctly, and the email attempts to send from the default account or produces an error.
Verify that your primary Outlook account has been granted 'Send on Behalf' or 'Send As' permissions by your Exchange Administrator for the alternative email addresses you wish to use.
Use SentOnBehalfOfName Property in Access VBA
Modify your Access VBA code to specify the exact sender address using the SentOnBehalfOfName property, provided you have the necessary exchange permissions.
By default, the Outlook Object Model sends emails using the primary account of the active profile. To override this, you cannot simply change the 'From' field manually in code without assigning the proper property.
Using the MailItem.SentOnBehalfOfName property instructs the Exchange server to dispatch the email using the designated alternative address.
Open your Microsoft Access database and press ALT + F11 to launch the Visual Basic for Applications (VBA) Editor.
In the Project Explorer, find the form or module containing the VBA script responsible for generating your Outlook emails.
Within the section of code where you define your Outlook MailItem (e.g., 'Set oMail = oApp.CreateItem(0)'), add the following line: 'oMail.SentOnBehalfOfName = "your_alternative_email@domain.com"'.
Save your VBA code, close the editor, and trigger the email action from your Access form to ensure the email is routed through the correct sender account.

Use the SendUsingAccount Property
If the alternative account is fully configured as a distinct account in your Outlook profile (not just a shared mailbox), use the SendUsingAccount property instead.
Looking for a Lightweight, Reliable Office Suite?
While Microsoft Access and Outlook are used for database and email automation, WPS Office offers a powerful, lightweight, and completely free alternative for handling your everyday spreadsheets, documents, and presentations with seamless compatibility.
- 1. Download WPS Office: Visit the official WPS Office website and download the free installation package for your operating system.
- 2. Install the Suite: Run the downloaded installer and follow the simple on-screen instructions to complete the setup.
- 3. Open Your Documents: Launch WPS Office and open your existing Microsoft Office files directly to enjoy seamless compatibility.

Frequently Asked Questions
Why does my Access VBA email always send from my default Outlook account?
By default, the Outlook Object Model processes automated email requests using the primary account set in the default Outlook profile. To change this, you must explicitly define the sender account in your VBA code using properties like SentOnBehalfOfName or SendUsingAccount.
What is the difference between SendUsingAccount and SentOnBehalfOfName in VBA?
SendUsingAccount specifies which actual, fully-configured account in your Outlook profile handles the email sending process. SentOnBehalfOfName modifies the 'From' address field to send as an alternate address (like a shared mailbox or distribution list) while still routing the email through your primary account's connection.
How do I grant 'Send on Behalf' permissions in Outlook?
These permissions cannot typically be granted from the Outlook desktop client alone. An Exchange Administrator must configure 'Send on Behalf' or 'Send As' permissions for your account via the Microsoft 365 Admin Center or the Exchange Admin Center under the specific mailbox delegation settings.
Will SentOnBehalfOfName work if Outlook is closed?
If you are automating Outlook via Access VBA, the Outlook process must be able to start in the background. If Outlook requires authentication prompts or the profile is not configured to run unattended, the script may pause or fail until Outlook is fully opened and authenticated.




