Boa noite Pessoal!
Estou com dificuldade em achar a solução para este problema. Eu tenho um formulário onde criei um botão para enviar por e-mail o relatório deste formulário e também quero anexar os arquivos existentes o campo "Anexos" deste formulário. Mas não estou conseguindo!!!
Alguém poderia me ajudar por favor!
segue o código:
Private Sub btemail_Click()
Dim strArquivo As String
Dim strLocal As String
Dim objOut As Object
Dim objMail As Object
Dim objAnexo As Object
Const olMailItem = 0
Const olByValue = 1
If IsNull(Me!ID) Then Exit Sub
If Me.Dirty Then DoCmd.RunCommand acCmdSaveRecord
Set objOut = CreateObject("Outlook.application")
'------------------------------------------------------------
'Abrindo o formulário de email para inserir os itens de email
'Similar ao clicar no botão NOVO do Outlook
'------------------------------------------------------------
Set objMail = objOut.CreateItem(olMailItem)
'------------------------------------------------------------
'Abrindo a opção anexo
'Similar ao clicar no botão ANEXO do Outlook
'------------------------------------------------------------
Set objAnexo = objMail.Attachments
'------------------------------------------------------------------------------
'Indico o nome do arquivo pdf e o local que será gravado.
'Neste exemplo gero os nomes dos arquivos, aproveitando o número da proposta,
'ficando com o seguinte aspecto: proposta1.pdf, proposta2.pdf,...
'------------------------------------------------------------------------------
strArquivo = "RNCC FEA_" & Me!ID & ".pdf"
strLocal = CurrentProject.Path & "\enviados\" & strArquivo
'----------------------------------------------------------------------------
'Abre o relatório filtrado e oculto, de acordo com a proposta selecionada.
'----------------------------------------------------------------------------
DoCmd.OpenReport "Relatório Não Conformidade", acViewPreview, , "ID=" & Me!ID, acHidden
'----------------------------------------------------------------------------
'Gera o pdf do relatório através do comando OutputTo.
'O mecanismo do Access reconhece que o relatório solicitado pelo OutputTo
'já está aberto e então o OutputTo usará o relatório já aberto e filtrado.
'----------------------------------------------------------------------------
DoCmd.OutputTo acOutputReport, "Relatório Não Conformidade", acFormatPDF, strLocal
'---------------------------------------------
'Fecha o relatório que está oculto
'---------------------------------------------
DoCmd.Close acReport, "Relatório Não Conformidade"
'-------------------------------------------------------------
'Adiciona o arquivo pdf no anexo, capturado da pasta enviados
'-------------------------------------------------------------
objAnexo.Add strLocal, olByValue, 1
objMail.To = DLookup("[E-mail Address]", "tbl_Contatos", "[ID]=" & Nz([Supervisor], 0))
objMail.Subject = "RNCC" & " - " & Me!Cliente & " - " & "FEA " & Me!ID
'--------------------------------------------------------
'Mostra o formulário de envio de email
'--------------------------------------------------------
objMail.Display
'-------------------------------------------------------
'Tudo já foi entregue ao Outlook; então podemos esvaziar
'a memória do computador usada pelas variáveis objeto.
'-------------------------------------------------------
Set objAnexo = Nothing
Set objMail = Nothing
Set objOut = Nothing
End Sub
Estou com dificuldade em achar a solução para este problema. Eu tenho um formulário onde criei um botão para enviar por e-mail o relatório deste formulário e também quero anexar os arquivos existentes o campo "Anexos" deste formulário. Mas não estou conseguindo!!!
Alguém poderia me ajudar por favor!
segue o código:
Private Sub btemail_Click()
Dim strArquivo As String
Dim strLocal As String
Dim objOut As Object
Dim objMail As Object
Dim objAnexo As Object
Const olMailItem = 0
Const olByValue = 1
If IsNull(Me!ID) Then Exit Sub
If Me.Dirty Then DoCmd.RunCommand acCmdSaveRecord
Set objOut = CreateObject("Outlook.application")
'------------------------------------------------------------
'Abrindo o formulário de email para inserir os itens de email
'Similar ao clicar no botão NOVO do Outlook
'------------------------------------------------------------
Set objMail = objOut.CreateItem(olMailItem)
'------------------------------------------------------------
'Abrindo a opção anexo
'Similar ao clicar no botão ANEXO do Outlook
'------------------------------------------------------------
Set objAnexo = objMail.Attachments
'------------------------------------------------------------------------------
'Indico o nome do arquivo pdf e o local que será gravado.
'Neste exemplo gero os nomes dos arquivos, aproveitando o número da proposta,
'ficando com o seguinte aspecto: proposta1.pdf, proposta2.pdf,...
'------------------------------------------------------------------------------
strArquivo = "RNCC FEA_" & Me!ID & ".pdf"
strLocal = CurrentProject.Path & "\enviados\" & strArquivo
'----------------------------------------------------------------------------
'Abre o relatório filtrado e oculto, de acordo com a proposta selecionada.
'----------------------------------------------------------------------------
DoCmd.OpenReport "Relatório Não Conformidade", acViewPreview, , "ID=" & Me!ID, acHidden
'----------------------------------------------------------------------------
'Gera o pdf do relatório através do comando OutputTo.
'O mecanismo do Access reconhece que o relatório solicitado pelo OutputTo
'já está aberto e então o OutputTo usará o relatório já aberto e filtrado.
'----------------------------------------------------------------------------
DoCmd.OutputTo acOutputReport, "Relatório Não Conformidade", acFormatPDF, strLocal
'---------------------------------------------
'Fecha o relatório que está oculto
'---------------------------------------------
DoCmd.Close acReport, "Relatório Não Conformidade"
'-------------------------------------------------------------
'Adiciona o arquivo pdf no anexo, capturado da pasta enviados
'-------------------------------------------------------------
objAnexo.Add strLocal, olByValue, 1
objMail.To = DLookup("[E-mail Address]", "tbl_Contatos", "[ID]=" & Nz([Supervisor], 0))
objMail.Subject = "RNCC" & " - " & Me!Cliente & " - " & "FEA " & Me!ID
'--------------------------------------------------------
'Mostra o formulário de envio de email
'--------------------------------------------------------
objMail.Display
'-------------------------------------------------------
'Tudo já foi entregue ao Outlook; então podemos esvaziar
'a memória do computador usada pelas variáveis objeto.
'-------------------------------------------------------
Set objAnexo = Nothing
Set objMail = Nothing
Set objOut = Nothing
End Sub