Hola de nuevo Sveinbjorn, muchas gracias por el aporte, sin embargo no me funciona el código de forma correcta, me sale el error " Error 3265: No se encontró el elemento en esta colección"
Dentro del Código que me hiciste favor de entregarme, los personalice de acuerdo mis datos e inclusive le quite el message box para ingresar la dirección, lo dejé para que en automático me abra un mensaje nuevo en outllok, y si lo abre y contiene el dato adjunto del Informe generado, pero no me adjunta los "archivos" dentro del registro de la base. Cabe mencionar que cambie "ID" por "Id_Gral" porque así se llama mi campo.
Te agradeceré me puedas apoyar con este tema.
Saludos!!!
P.D. El código quedó así:
Private Sub Comando328_Click()
'Requiere registrar las librería "Microsoft Outlook x.xx Object Library"
' Declara las variables
Dim Olk As Outlook.Application
Dim OlkMsg As Outlook.MailItem
Dim laDireccion As String
'Crea los objetos
Set Olk = CreateObject("Outlook.Application")
Set OlkMsg = Olk.CreateItem(olMailItem)
' Añade los datos del mensaje y los adjuntos
With OlkMsg
.To = laDireccion
.Subject = "Solicitud de pago " & Me.Nombre_Proveedor & ""
.Body = "Buen día. Por este medio solicito se programe el pago que se solicita en el presente correo. Observaciones: " & Me.Observaciones & " Gracias."
'Extrae los adjuntos a una carpeta
extraeAdjuntos Me.Id_Gral
'Carga los adjuntos mensaje
Dim archivo As String
archivo = Dir("W:\Adjuntos\*.*")
Do While Len(archivo) > 0
.Attachments.Add "W:\Adjuntos\" & archivo
archivo = Dir()
Loop
DoCmd.OutputTo acOutputReport, "PPA", acFormatPDF, "W:\Adjuntos\Informe PPA.pdf"
.Attachments.Add "W:\Adjuntos\Informe PPA.pdf"
.Display ' Muestra el mensaje para enviarlo "a mano"
End With
'Borra lo adjuntos extraídos
borraAdjuntos
' Destruye los objetos
Set OlkMsg = Nothing
Set Olk = Nothing
End Sub
Sub extraeAdjuntos(elId_Gral As Long)
Dim rst As DAO.Recordset
Dim rstAdj As DAO.Recordset2
Dim misAdjuntos As DAO.Field2
On Error Resume Next
MkDir "W:\Adjuntos"
On Error GoTo sol_err
Set rst = Me.RecordsetClone
rst.FindFirst "Id_Gral=" & elId_Gral
Set misAdjuntos = rst("Adjuntos")
Set rstAdj = misAdjuntos.Value
rstAdj.MoveFirst
Do Until rstAdj.EOF
rstAdj.FileData.SaveToFile "W:\Adjuntos\"
rstAdj.MoveNext
Loop
Salida:
Exit Sub
sol_err:
If Err.Number <> 3021 Then MsgBox "Error " & Err.Number & ": " & Err.Description
End Sub
Sub borraAdjuntos()
On Error Resume Next
Kill "W:\Adjuntos\*.*"
RmDir "W:\Adjuntos\"
End Sub