Envío de correo con Adjunto Access VB

Tengo un formulario creado de entradas y salidas de inventario y estos formularios tienen creado un informe, como formato de impresión

Pero quiero que cuando el usuario le de en el botón guardar, en el código VB se crea un correo pero que adjunte el informe en pdf

Pero este proceso corra en segundo plano ... Que sea automático

(Yo ya tengo el código pero no he podido adjuntar el informe )(pongo el código )

Como seria ese proceso

Muchas gracias...

Dim CO As Outlook.Application
    Dim RE As Outlook.MailItem
    Set CO = New Outlook.Application
    Set RE = CO.CreateItem(olMailItem)
       With RE
       .To = Me.FScorreo1
       .Subject = "SE REALIZO TRANSFERENCIA DE STOCK NUMERO :" & "" & Me.FSid & ""
       .Body = "ESTADO : " & "" & Me.Cestado & "" & vbCrLf & _
       "RPRESENTANTE : " & "" & Me.Crepresentante & "" & vbCrLf & _
       "CLIENTE : " & Me.Ccliente & "" & vbCrLf & _
       "REFERENCIA : " & Me.Carticulo & "" & vbCrLf & _
       "DESCRIPCION : " & Me.Cdescripcion & "" & vbCrLf & _
       "TIPO DE TRATAMIENTO : " & Me.CtipoTratamiento & "" & vbCrLf & _
       "TIPO DE DESPACHO : " & Me.CtipoDespacho & "" & vbCrLf & _
       "TIPO DE CIERRE : " & Me.CtipoCierre & "" & vbCrLf & _
       "DESCRIPCION : " & Me.Ccomentarios & ""
       .Importance = olImportanceHigh
       .SEND
'          .BodyFormat = olFormatHTML
'           .HTMLBody = ""
       End With
Set CO = Nothing
Set RE = Nothing

1 Respuesta

Respuesta
1

Vamos a ver si me explico. Si sólo es un informe de cada vez puedes usar algo como

DoCmd.OpenReport "Facturas", acPreview, , "numfactura=" & Me.numfactura & ""
DoCmd.SendObject acSendReport, "Facturas", "PDF(*.pdf)", "" & Me.cliente & ""

Es decir, abre el informe en ese registro en concreto, lo pasa al Outlook de Office y ahí lo envías.

Por el contrario, si son varios debes usar el Outlook de Windows y la función la tienes bien estructurada pero te pongo un ejemplo de código

DoCmd.OpenReport "Felicitacion", acPreview, , "NomFam='" & Me.NomFam & "'"
DoCmd.OutputTo acOutputReport, "Felicitacion", "PDFFormat(*.pdf)", "C:\users\gonza\documentos\borrar\cumpleaños\" & "" & Me.NomFam & "" & ".pdf", False, "", , acExportQualityPrint
Dim pola As Outlook.Application
    Dim pTaskItem, ptaskitemasig As Outlook.TaskItem
    Const olCreateTasks = 3
    Const olDialog = 1
    Const olSound = 8
    Set pola = CreateObject("Outlook.Application")
    sSubject = "Estimado amigo Te deseo muchas felicidades"
    sBody = "Como hoy es tu cumpleaños me permito invitarME a la fiesta que das. Espero beber esa champán que guardas para las ocasiones"
    dDue = Now()
    dStart = Now()
    sSoundFile = "alarm3"
    bReminderSet = True
    Set pTaskItem = pola.CreateItem(olCreateTasks)
        pTaskItem.Subject = sSubject
        pTaskItem.Body = sBody
        pTaskItem.DueDate = dDue
        pTaskItem.StartDate = dStart
        pTaskItem.ReminderSet = bReminderSet
        If bReminderSet Then
              pTaskItem.ReminderSoundFile = sSoundFile
              pTaskItem.ReminderTime = Now()
        End If
        pTaskItem.Recipients.Add ("'" & Me.EMailFam & "'")
        pTaskItem.Attachments.Add ("C:\users\gonza\documentos\borrar\cumpleaños\" & "" & Me.NomFam & "" & ".pdf")
        pTaskItem.Assign
        pTaskItem.Send
        Set pTaskItem = Nothing
    Set pola = Nothing
DoCmd.Close acReport, "Felicitacion"
Kill "C:\users\gonza\documentos\borrar\cumpleaños\" & "" & Me.NomFam & "" & ".pdf"

Parece largo( y lo es) pero es que creo un archivo con ese informe en una carpeta  Cumpleaños y lo que mando es ese archivo, es lo de PTaskItem. attachments..... Después de enviarlo lo elimino, es lo de Kill

Como no hayas tocado un poco el Outlook de Windows te lo pasa a la bandeja de salida, por lo que luego tendrías que abrirlo y enviar los que estén en esa bandeja.

Ok gracias por la información

Pero lo que quiero es :

Que al momento de guardar me haga eso automático,

Actualmente lo que hace el código es al momento de guardar el crea el correo y lo envía automático .. pero lo que me falta es que adjunte el informe .

Pues eso es lo que hace. Es de suponer que quieres que el informe sea a, por así decir, a un cliente específico, a un número de factura especifico, etc., por eso lo de abrir el informe en un registro determinado. Al decir lo de guardar ¿debo suponer que el formulario es independiente? Mira, por ejemplo

Si pulso el botón señalado con la flecha

Abre el informe Factura en ese número de factura, lo manda a una carpeta, envía ese archivo como adjunto a Outlook luego cierra el informe, envía ese archivo a Outlook y luego elimina dicho archivo de la carpeta. Y todo en menos de un pestañeo.

Y el mensaje es

El icono es distinto porque no uso el Adobe.

Buen día

Gracias por el aporte

Ya lo configure de acuerdo a mi formulario

Pero tengo unos errores como se ve en la imagen

No se si estoy mal pero ese error

¿Sera por unas librerías? O que sera

Me toco cmentariar varias líneas (las que están resaltadas en amarillo )

Y me sale el correo con el adjunto como se ve en la imagen, ¿es posible arreglar esos errores?

Ya que lo ideal es que el correo quede con titulo un body y algo más

Vamos a hacer una cosa, que creo que será mejor. Si quieres, repito, si quieres, mándame un mensaje ( sólo el mensaje ) a [email protected] y te mando el ejemplo, que es donde puedes ver, el código, las referencias, etc.

Si lo haces, en el asunto del mensaje pon tu alias, Krauss, ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas