Enviar informe automáticamente desde Access por email

Me gustaría enviar un email adjuntando un informe dándole a un botón. Me explico:

Tengo un formulario y al darle a un botón quiero que envíe el mismo informe a la misma persona siempre que se presione. He estado mirando en internet y he llegado a crear este código pero me da error en tiempo de ejecución (5): argumento o llamada a procedimiento no válido.

Este sería el código que tengo:

Private Sub Seg_op_Click()
Dim oApp As New Outlook.Application
Dim oEmail As Outlook.mailitem

DoCmd. OutputTo acReport, "VERIFICACION TEST MANUAL CLOVIS", acFormatRTF, CurrentProject.Path & "\VERIFICACION TEST MANUAL CLOVIS.rtf"
Set oEmail = oApp.CreateItem (olMailItem)
oEmail.To = "[email protected]"
oEmail.Subject = "proba"
oEmail.Attachments = CurrentProject.Path & "\VERIFICACION TEST MANUAL CLOVIS.rtf"
oEmail.Send
End Sub

Si alguien me echara una mano lo agradecería.

1 Respuesta

Respuesta
2

Una forma rápida es usar SendObject:

DoCmd. SendObject acSendReport, "VERIFICACION TEST MANUAL CLOVIS", acFormatRTF, "[email protected]",,, "proba",, False

Si quieres editar el mensaje, elimina (o cambia a True) el último False.

Si lo quieres hacer con automatización con Outlook, primero debes activar la referencia a Outlook en tu editor de VBA ("Microsoft Outlook x.xx Object Library")

El código del botón podría ser:

'Requiere registrar las librería "Microsoft Outlook x.xx Object Library"
' Declara las variables
Dim Olk As Outlook.Application
Dim OlkMsg As Outlook.MailItem
'Crea los objetos
Set Olk = CreateObject("Outlook.Application")
Set OlkMsg = Olk.CreateItem(olMailItem)
'Exporta el informe
DoCmd. OutputTo acReport, "VERIFICACION TEST MANUAL CLOVIS", acFormatRTF, CurrentProject.Path & "\VERIFICACION TEST MANUAL CLOVIS.rtf"
' Añade los datos del mensaje y los adjuntos
With OlkMsg
.To = "[email protected]"
.Subject = "proba"
.Body = "Se adjunta informe."
.Attachments.Add CurrentProject.Path & "\VERIFICACION TEST MANUAL CLOVIS.rtf"
. Display ' Muestra el mensaje para enviarlo "a mano" 'Si lo quieres enviar directamente, cambia esta linea por .Send
End With
' Destruye los objetos
Set OlkMsg = Nothing
Set Olk = Nothing

A ver si te sirve o hay que afinarlo.

Un saludo.


¡Gracias!  ya probé con Docmd pero como me aparecía el mensaje de seguridad y como había que darle a sí ya no me valía (y intenté quitar el mensaje pero no pude). Pero con el código que me has enviado funciona perfectamente.

Una última cosa, me aparece el informe en la misma carpeta como el formato enviado y me pregunto si se podrá borrar de la carpeta automáticamente después de haber enviado.

Muchísimas gracias por la ayuda

ANA

Para eliminar el archivo, añade, después del End With la siguiente línea:

Kill CurrentProject.Path & "\VERIFICACION TEST MANUAL CLOVIS.rtf"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas