Archivo adjunto desde access.

Me gustaría saber si se puede mandar un email con archivo adjunto desde access.

1 respuesta

Respuesta
1
Antes que nada hay que pensar que Access no es un proveedor de servicios MAPI como lo pueda ser Outlook o Exchange, por lo cual, el método propuesto que esta documentado para Microsoft Access 97, se refiere a Automation al enviar un mensaje usando Microsoft Outlook desde Access con el método SendObject, este método no podrá dar la misma funcionalidad que se obtiene al usar un programa cliente de correo electrónico.
6 pasos a seguir en este ejemplo:
1. Crear un archivo de texto llamado Customers.txt en la carpeta c:\mis documentos
2. Iniciar Microsoft Access y abrir la base de datos de ejemplo Neptuno.mdb
3. Crear un módulo y en la sección Declaraciones escribir si es que no lo esta:
Option Explicit
4. En el Menu Herramientas, hacer click en Referencias.
5. En el cuadro Referencias, marcar Microsoft Outlook 8.0 Object Model y entonces click en aceptar.
Nota: si no aparece disponible la referencia a Microsoft Outlook 8.0 Object Model, habrá que buscar en el disco duro el archivo Msoutl8. Olb. Si no se localiza, habrá que ejecutar la instalación de Microsoft Outlook para poder continuar con este ejemplo.
6. Escribir el siguiente procedimiento en el nuevo módulo:
Sub SendMessage(DisplayMsg As Boolean, Optional AttachmentPath)
Dim objOutlook As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Outlook.Recipient
Dim objOutlookAttach As Outlook.Attachment
' Create the Outlook session.
Set objOutlook = CreateObject("Outlook.Application")
' Create the message.
Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
With objOutlookMsg
' Add the To recipient(s) to the message.
Set objOutlookRecip = .Recipients.Add("Nancy Davolio")
objOutlookRecip.Type = olTo
' Add the CC recipient(s) to the message.
Set objOutlookRecip = .Recipients.Add("Michael Suyama")
objOutlookRecip.Type = olCC
' Add the BCC recipient(s) to the message.
Set objOutlookRecip = .Recipients.Add("Andrew Fuller")
objOutlookRecip.Type = olBCC
' Set the Subject, Body, and Importance of the message.
.Subject = "This is an Automation test with Microsoft Outlook"
.Body = "This is the body of the message." & vbCrLf & vbCrLf
.Importance = olImportanceHigh 'High importance
' Add attachments to the message.
If Not IsMissing(AttachmentPath) Then
Set objOutlookAttach = .Attachments.Add(AttachmentPath)
End If
' Resolve each Recipient's name.
For Each ObjOutlookRecip In .Recipients
objOutlookRecip.Resolve
Next
' Should we display the message before sending?
If DisplayMsg Then
.Display
Else
.Send
End If
End With
Set objOutlook = Nothing
End Sub
7. Para ver como funciona este procedimiento, escribir en la ventana depuración la siguiente línea, y entonces pulsar enter:
SendMessage True, "C:\My Documents\Customers.txt"
Ver que el nuevo mensaje se muestra con el archivo adjunto. Para enviarlo sin mostrar el mensaje, llamar al procedimiento pasando el valor False para el primer argumento:
SendMessage False, "C:\My Documents\Customers.txt"
Para enviar el mensaje sin especificar un archivo adjunto, omitir el segundo argumento cuando se llama al procedimiento:
SendMessage True

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas