Imprimir página | Cerrar ventana

Guardar un mesnaje Outlook como pdf

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84116
Fecha de impresión: 16/Septiembre/2019 a las 10:43


Tema: Guardar un mesnaje Outlook como pdf
Publicado por: arodrigu
Asunto: Guardar un mesnaje Outlook como pdf
Fecha de publicación: 27/Noviembre/2018 a las 13:50
Hola a todos.

Trato de enviar correos outlook desde Access.
Lo hago todo bien, pero quisiera guardar el mensaje como pdf y no lo consigo.

A ver si alguien sabe qué pasa.

Set objOutlook = CreateObject("Outlook.Application")
Set objItem = objOutlook.createitem(olMailItem)
                 
With objItem
.Display
.Subject = "" & TempVars!AsuntoCorreo & ""
.BodyFormat = 2 'olFormatHTML
"<body>" & _
"<p> Aquí el cuerpo del correo </p></body></html>"
'Lo guardo
.SaveAs TempVars!RutaFicheros & "Prueba" & ".pdf"
'Lo envío
.Send
End With

Set objOutlook = Nothing

Lo envía bien y guarda el pdf donde quiero pero luego dice que no puede abrirlo.
Gracias.


-------------
Fuerza y honor.
Saludos de Arturo desde Madrid



Respuestas:
Publicado por: arodrigu
Fecha de publicación: 27/Noviembre/2018 a las 14:02
Perdón. Se me olvidó decir que utilizo Access y Outlook 2013.

-------------
Fuerza y honor.
Saludos de Arturo desde Madrid


Publicado por: Mihura
Fecha de publicación: 27/Noviembre/2018 a las 14:32
Un correo electrónico no se puede guardar como PDF desde Outlook, por lo menos en 2.010.

-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: arodrigu
Fecha de publicación: 28/Noviembre/2018 a las 10:27
Hola Jesús.
Sí ya lo sé.
Yo lo que hago es imprimirlo con la impresora virtual Microsoft Print to PDF, pero no se hacerlo con código.



-------------
Fuerza y honor.
Saludos de Arturo desde Madrid


Publicado por: mounir
Fecha de publicación: 28/Noviembre/2018 a las 11:38
Hola!
He utilizado este patrón (save an outlook message as a pdf in access vba) de busqueda en Google y me han salido bastantes enlaces
No sé si te sirve:

- https://answers.microsoft.com/en-us/msoffice/forum/msoffice_outlook-mso_other/vba-to-save-outlook-message-and-attachments-as-one/047f072e-e119-4500-a050-b57b45e97599" rel="nofollow - https://answers.microsoft.com/en-us/msoffice/forum/msoffice_outlook-mso_other/vba-to-save-outlook-message-and-attachments-as-one/047f072e-e119-4500-a050-b57b45e97599 .

- https://stackoverflow.com/questions/28812446/saving-outlook-email-as-pdf-attachments" rel="nofollow - https://stackoverflow.com/questions/28812446/saving-outlook-email-as-pdf-attachments .

- https://www.slipstick.com/developer/code-samples/save-outlook-email-pdf/" rel="nofollow - https://www.slipstick.com/developer/code-samples/save-outlook-email-pdf/ .

-------------
Un Saludo.


Publicado por: arodrigu
Fecha de publicación: 28/Noviembre/2018 a las 12:52
Gracias Mounir.

Ya los había visto pero no soy capaz de adaptarlos, entre otras cosas, porque mi Access no reconoce muchos de los comandos que aparecen y porque no soy muy hábil, claro.

Sigo buscando.


-------------
Fuerza y honor.
Saludos de Arturo desde Madrid


Publicado por: arodrigu
Fecha de publicación: 28/Noviembre/2018 a las 13:02
Por ejemplo se para aquí y no encuentro cómo sustituirlo:
    
Set MyOlNamespace = Application.GetNamespace("MAPI")
    Set MyOlSelection = Application.ActiveExplorer.Selection



-------------
Fuerza y honor.
Saludos de Arturo desde Madrid


Publicado por: mounir
Fecha de publicación: 28/Noviembre/2018 a las 13:21
En el caso de VBA, la aplicación apunta a una instancia del objeto Access.Application, por lo que debe crear e inicializar explícitamente el objeto Outlook.Application:

1-
Dim olApp As Outlook.Application
Set olApp = CreateObject("Outlook.Application")
Set MyOlNamespace = olApp.getnamespace("MAPI")


2- https://docs.microsoft.com/en-us/office/vba/api/outlook.application.activeexplorer" rel="nofollow - https://docs.microsoft.com/en-us/office/vba/api/outlook.application.activeexplorer

-------------
Un Saludo.


Publicado por: arodrigu
Fecha de publicación: 28/Noviembre/2018 a las 13:54
Veo que no voy a poder.
Ahora se para aquí:
    
'Determine el FilterIndex para guardarlo como un archivo pdf
    ' Obtenga todos los filtros
    Dim fdfs As FileDialogFilters
    Dim fdf As FileDialogFilter
    Set fdfs = dlgSaveAs.Filters

Dice que no se ha definido el tipo definido por el usuario ????
En fin. Te agradezco tu interés. No pierdas más el tiempo conmigo.





-------------
Fuerza y honor.
Saludos de Arturo desde Madrid


Publicado por: Mihura
Fecha de publicación: 28/Noviembre/2018 a las 15:19
Una cosa es guardar como ... y otra imprimir. LOL

Para imprimir lo primera tendrás que seleccionar la impresora correspondiente, en el foro hay ejemplos de como hacerlo (o en la página de Happy) y una vez que lo tengas el segundo paso es imprimir el mensaje.

Para imprimir el mensaje tendrás que hacerlo por automatización, referenciar Outlook como librería, abres una instancia Outlook (una aplicación), seleccionas el mensaje y lo imprimes.

Todo ello con VBA. Wink


-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: arodrigu
Fecha de publicación: 29/Noviembre/2018 a las 12:21
Hola, sigo molestando.

Me estoy intentado construir el códido con los enlaces de mounir y cuando llego a esta parte en la que trato de abrir word y a través del cuadro de diálogo para "guardar como" (sin mostrarlo) y poder guardar el fichero que ya tengo generado como .mht, como .pdf, da error de automatización en la última línea donde se utiliza "msoFileDialogSaveAs".

He visto por la red que msoFileDialogSaveAs no se puede utilizar en Access, solo en Excel.

¿Me podéis decir si es cierto? y, en tal caso, ¿cómo puedo sustituirlo?.

También he visto que más adelante se declaran unas variables con unos tipos que mi Access no reconoce:

    Dim fdfs As FileConverters
    Dim fdf As FileConverter

¿Me podéis decir con qué tipos tengo que sustituirlos?
Gracias.


[CODE ]
Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Dim dlgSaveAs As FileDialog

Set wrdApp = CreateObject("Word.Application")
Set wrdDoc = wrdApp.Documents.Open(FileName:=tmpFileName, Visible:=False)
Set dlgSaveAs = wrdApp.FileDialog(msoFileDialogSaveAs)
[\CODE]


-------------
Fuerza y honor.
Saludos de Arturo desde Madrid


Publicado por: mounir
Fecha de publicación: 29/Noviembre/2018 a las 13:07
Hola!

Este hilo:

https://access-programmers.co.uk/forums/showthread.php?t=283645" rel="nofollow - https://access-programmers.co.uk/forums/showthread.php?t=283645 te lleva a hacerlo con API
http://access.mvps.org/access/api/api0001.htm" rel="nofollow - http://access.mvps.org/access/api/api0001.htm

-------------
Un Saludo.


Publicado por: arodrigu
Fecha de publicación: 29/Noviembre/2018 a las 14:14
Bueno no sé qué es API.
He cogido el código del primer enlace y vuelve a pararse en la misma línea.

Set wskazMiejsce = Application.FileDialog(msoFileDialogSaveAs)

El segundo enlace es muy complicado.
Creo que me falta alguna librería o algo así.

Yo utilizo para mostrar el cuadro de diálogo para seleccionar archivos, la función "FileDlg" de Happy.
La descargué hace muchos años y, sorprendentemente, me ha funcionado siempre. Estoy intentando adaptarla (no creo que lo consiga).

En cualquier caso ya he conseguido generar el fichero .mht, ahora se trata de guardarlo como .pdf  sin que muestre el cuadro de dialogo de guardar, que lo haga automáticamente.


-------------
Fuerza y honor.
Saludos de Arturo desde Madrid


Publicado por: mounir
Fecha de publicación: 29/Noviembre/2018 a las 16:41
Hola!

Debes referenciar la librería "Microsoft Office 16.0 Object Library" Es para Access 20116.

Mas información sobre https://analystcave.com/vba-application-filedialog-select-file/" rel="nofollow - FileDialog.

-------------
Un Saludo.


Publicado por: arodrigu
Fecha de publicación: 30/Noviembre/2018 a las 09:14
Ya comenté que tengo Access 2013.
Tengo Activadas las siguientes referencias, no sé si me faltará alguna:

"Visual Basic For Applications"
"Microsoft Access 15.0 Object Library"
"OLE Automation""
"Microsoft Access 15.0 Access database engine Object Library"
"Microsoft Word 15.0 Object Library"
"Microsoft Outlook15.0 Object Library"
"Microsoft Excel15.0 Object Library"


-------------
Fuerza y honor.
Saludos de Arturo desde Madrid


Publicado por: mounir
Fecha de publicación: 30/Noviembre/2018 a las 09:24
Hola!

En tu caso busca "Microsoft Office 15.0 Object Library" y marcalo.

-------------
Un Saludo.


Publicado por: arodrigu
Fecha de publicación: 30/Noviembre/2018 a las 11:03
Está marcado. Mira el correo anterior.

-------------
Fuerza y honor.
Saludos de Arturo desde Madrid


Publicado por: mounir
Fecha de publicación: 30/Noviembre/2018 a las 15:34
Publicado originalmente por mounir mounir escribió:

Hola!

En tu caso busca "Microsoft Office 15.0 Object Library" y marcalo.


No está marcado.

-------------
Un Saludo.


Publicado por: arodrigu
Fecha de publicación: 06/Febrero/2019 a las 09:24
De este tema desistí hace tiempo. Por favor, cerrad este hilo.
Gracias.


-------------
Fuerza y honor.
Saludos de Arturo desde Madrid


Publicado por: arodrigu
Fecha de publicación: 06/Febrero/2019 a las 09:30
El error que devuelve es "Formato de base de datos no reconocido (Error 3343)


"

-------------
Fuerza y honor.
Saludos de Arturo desde Madrid



Imprimir página | Cerrar ventana