Error de tiempo de ejecución 287. Envío de correos electrónicos a través de Outlook utilizando VBA en Access.

Tengo un caso en el que un usuario desea recibir notificaciones de cuándo se agregan entregas a una Base de datos de Access. El método más simple que se me ocurrió fue configurar un correo electrónico automatizado a través de Outlook 2010. El siguiente código es lo que tengo establecido:

Dim oApp As Outlook.Application
Dim oMail As MailItem
Dim varDnoteRef2 As String
Dim varuser As String
varuser = DLookup("[Employee_Name]", "employees", "[Employee_ID]=" & TempVars!gloggedin)
varDnoteRef2 = DLast("Supplier_Dnote_Ref", "Supplier_Dnotes")

Set oApp = CreateObject("Outlook.application")
Set oMail = oApp.CreateItem(olMailItem)
oMail.Body = "A Delivery Note has been added to the Database by " & varuser & " on " & Now() & "." & _
             vbNewLine & "Delivery Note: " & varDnoteRef2
oMail.Subject = "Automatic Notification: Delivery Note"
oMail.To = "[email protected]"
oMail.Send
Set oMail = Nothing
Set oApp = Nothing

Este código funciona perfectamente cuando la persona que activa el código tiene Outlook abierto. Sin embargo, cuando el usuario no tiene Outlook lanzado, el usuario recibe un error en eloMail.send línea.

error # 287 línea de error 0 error definido por la aplicación o definido por el objeto.

Lo que obtienen es un pequeño icono en el escritorio que es el símbolo de perspectiva con un engranaje / engranaje y un mensaje que diceanother program or application is using outlook. Que es lo que espero. Pero, ¿por qué falla en el envío?

¿Cómo puedo evitar este error / hay una solución?

Editar (Actualizar)

Lo que es más extraño es que cuando paso por mi código usando F8. ¡¡FUNCIONA!! Pero aún no cuando llamo al código desde una acción de formulario, p.button_on_click

Respuestas a la pregunta(1)

Su respuesta a la pregunta