Enviar pdf desde formulario cambiando el nombre del archivo adjunto

Desde un formulario al hacer click sobre un botón me envía el informe Pedidos por correo electrónico, pero el nombre del archivo adjunto siempre es el nombre del informe. Como puedo hacer para que el nombre del archivo adjunto vaya cambiando según en el registro que me encuentre. El nombre sería el del campo "Numpedido".

Y como puedo evitar que si una palabra lleva tilde no aparezca una interrogación en su lugar.

El código que utilizo es este.

Private Sub email_Click()
If IsNull(Me.mail) Or Me.mail = "" Then
MsgBox ("Haga doble click en Proveedor para añadir email"), vbInformation, "Aviso"
Exit Sub
Else
Dim Pregunta As Integer
Dim Fecha_envio
Pregunta = MsgBox("Seguro que quieres enviar el correo?", vbOKCancel, "Oye")
If Pregunta = 2 Then
Exit Sub
Else
DoEvents
Application.Echo False
DoCmd.OpenReport "Pedidos", acPreview, , "Numpedido=forms!Pedido!Numpedido"
DoCmd.SendObject acSendReport, "Pedidos", "PDFFormat(*.pdf)", "'" & Me.mail & "'", , , "" & Me.Numpedido & "", "Le envio solicitud de Pedido" + vbCrLf + "" + vbCrLf + "" + vbCrLf + "" + vbCrLf + "" + "Cesar Fernández Gonzalez" + vbCrLf + "Almacen " + vbCrLf + "Servicio de Mantenimiento" + vbCrLf + "Escuela Tecnica" + vbCrLf + "Tlfs. 955420276" + vbCrLf + "[email protected]", False
DoCmd.Close acReport, "Pedidos"
Me.Enviado = True
Me.Fecha_envio = Date
End If
End If
DoEvents
Application.Echo True
End Sub

1 respuesta

Respuesta
1

Cada uno hace lo que quiere, pero, pregunto, ¿no sería conveniente guardar una copia de respaldo como que le has enviado el documento?

Mira, si tengo el formulario Ventas( con un informe Facturas), y en algún lugar del ordenador tengo una carpeta Facturas

Primero, puedes ver que María Anders tiene acento en la i. Como no tengo número de pedido le digo que use NumFactura. Cuando pulso el botón amarillo, primero me abre el informe Facturas correspondiente a ese numfacturas, luego me lo envía, en formato PDF a esa carpeta, luego cierra el informe, me lo envía a la bandeja de salida y por último lo elimina de la carpeta Facturas

Puedes ver que los acentos los respeta y le ha puesto el nombre de la factura

Lo que es importante es que abras la ventana del editor de Vb y actives la casilla Microsoft Outlook XX.X Object Library. Lo de XX. X es por la versión de Office que tengas instalada.

El código del evento Al hacer clic del botón es

Private Sub Comando47_Click()
DoCmd.OpenReport "facturas", acPreview, , "numfactura='" & Me.NumFactura & "'"
DoCmd.OutputTo acOutputReport, "facturas", "PDFFormat(*.pdf)", "c:\users\gonza\documents\borrar\facturas\" & "" & Me.NumFactura & "" & ".pdf", False, "", , acExportQualityPrint
DoCmd.Close acReport, "facturas"
Dim Enviar As Outlook.Application
    Dim pTaskItem, ptaskitemasig As Outlook.TaskItem
    Const olCreateTasks = 3
    Const olDialog = 1
    Const olSound = 8
    Set Enviar = CreateObject("Outlook.Application")
    sSubject = "Tengo la obligación de remitirte este facturón"
    sBody = "Si no pagas no hay perdón"
    dDue = Now()
    dStart = Now()
    sSoundFile = "alarm3"
    bReminderSet = True
    Set pTaskItem = Enviar.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.Email & "'")
        pTaskItem.Attachments.Add ("C:\users\gonza\documents\borrar\facturas\" & "" & Me.NumFactura & "" & ".pdf")
        pTaskItem.Save
        pTaskItem.Assign
        pTaskItem.Send
        Set pTaskItem = Nothing
    Set Enviar = Nothing
Kill "C:\users\gonza\documents\borrar\facturas\" & "" & Me.NumFactura & "" & ".pdf"""
End Sub

¿Que no quieres que te lo borre de la carpeta Facturas?, pues con eliminar la línea Kill....

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas