Error en envío informe por email desde formulario en Access
Tengo las tablas [Pedidos], [Líneas], [Clientes], [Artículos]..., la consulta [Cpedidos]con las tablas anteriormente citadas.
Tengo un formulario con la siguiente propiedad en Origen del registro: SELECT [PEDIDOS].[numped], [PEDIDOS].[fechaped], [PEDIDOS].[codigcli], [PEDIDOS].[MES], [PEDIDOS].[observaciones], [PEDIDOS].[CLAVE],[CLIENTES].[emailcli], [CLIENTES].[nombrcli] FROM CLIENTES INNER JOIN PEDIDOS ON CLIENTES.codigcli=PEDIDOS.codigcli;
Este formulario tiene un subformulario con la propiedad en origen del registro :SELECT LINEAS.*, ARTICULOS.descart FROM ARTICULOS INNER JOIN LINEAS ON ARTICULOS.codigart=LINEAS.codigart;
Después de introducir datos en el formulario tengo un botón de comando que ejecuta un macro de impresión del informe de ese pedido, el informe en propiedades Origen del registro=Cpedidos y en filtro= [Cpedidos]![numped]=[Forms]![Pedidos]![numped].
Bueno esto con la ayuda de Sveinbjorn El Rojo me funciona perfectamente pero el problema me surge si quiero enviar dicho informe por email.
Para ello según los ejemplos de Neckkito he creado un botón de comando con el siguiente código:
On Error GoTo sol_err
'Definimos las variables
Dim mailA As String
Dim mailCC As String
Dim elAsunto As String, elMsg As String
'Cogemos los valores que hemos indicado en el formulario
mailA = Me.emailcli.Value
mailCC = Nz(Me.cboCC.Value, "")
elAsunto = Nz(Me.TxtAsunto.Value, "")
elMsg = Nz(Me.TxtMsg.Value, "")
'Exportamos el informe en formato snapshot a la carpeta donde tenemos la BD
Dim ruta As String, miInforme As String
ruta = Application.CurrentProject.Path & "\"
miInforme = ruta & "Informe.pdf"
DoCmd.OutputTo acOutputReport, "Pedidos", "PDF", miInforme, False
'Creamos una instancia de Outlook
Dim Olk As Outlook.Application
Set Olk = CreateObject("Outlook.Application")
'Creamos un nuevo mensaje de Outlook
Dim OlkMsg As Outlook.MailItem
Set OlkMsg = Olk.CreateItem(olMailItem)
'Creamos la información del mail
With OlkMsg
'Definimos los elementos del mail
Dim OlkDestinatario As Outlook.Recipient
Dim OlkCopia As Outlook.Recipient
Dim OlkAdjunto As Outlook.Attachment
'Inicializamos los elementos del mail
Set OlkDestinatario = .Recipients.Add(mailA)
OlkDestinatario.Type = olTo
'Comprobamos que queremos copia
If mailCC <> "" Then
Set OlkCopia = .Recipients.Add(mailCC)
OlkCopia.Type = olCC
End If
'Comprobamos que exista el archivo que vamos a adjuntar
If Not IsMissing(miInforme) Then
Set OlkAdjunto = .Attachments.Add(miInforme)
End If
'Añadimos los elementos Asunto y Mensaje
.Subject = elAsunto
.Body = elMsg
'Enviamos el mail
.Send
End With
'Lanzamos un mensaje de OK
MsgBox "El mensaje se ha enviado correctamente", vbInformation, "CORRECTO"
'Eliminamos el archivo Informe.snp de la carpeta
Kill miInforme
'Eliminamos la instancia
Set Olk = Nothing
Set OlkMsg = Nothing
Set OlkDestinatario = Nothing
Set OlkAdjunto = Nothing
Salida:
Exit Sub
sol_err:
MsgBox Err.Number & ": " & Err.Description
Resume Salida
El resultado es que me da error: -2147467259 Outlook no reconoce alguno de los nombres.
Si pongo Display en lugar de Send al visualizar el correo pone en Para: m……[email protected]#mailto:m……[email protected]#
Por favor una vez más pido vuestra ayuda.