Esqueceu sua senha? Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

Adicionar Relatório no corpo do e-mail

Discussões sobre a integração do Excel com o Banco de Dados Access

Moderador: joseA

Avatar do usuário
cy_rangel
Colaborador
Colaborador
Mensagens: 90
Registrado em: Sex Set 04, 2015 8:32 pm

Adicionar Relatório no corpo do e-mail

Mensagem por cy_rangel » Qua Mai 13, 2020 5:30 pm

Olá Pessoal,

Gostaria de pedir uma ajuda....

Tenho o seguinte código abaixo, ele envia uma mensagem de e-mail com arquivos anexos, porém, preciso adicionar no corpo desse e-mail após "Prezados" e antes de "Me!Assinatura" um relatório. Isso é possível?

Procurei na internet mas geralmente as pessoas criam formulários como a caixa do outlook, e não é bem isso que eu preciso.


PS.: Eu li em alguns lugares que esses relatórios tem que ser salvos em HTML para então adiciona-los no corpo do e-mail, mas não tenho a menor noção de como fazer isso. Não necessáriamente precisa ser o relatório, pode ser a tabela tmb, ou os dados da tabela, enfim, rs... Só preciso adicionar as informações correspondentes ao meu registro no corpo do e-mail :/

Código: Selecionar todos

Private Sub Btn_Email_Click()

 
Dim strLocalDemonstr As String
Dim strLocalBoleto As String
Dim bolExisteFicheiro As Boolean

Dim objOut As Object
Dim objmail As Object
Dim objAnexo As Object
Const olMailItem = 0
Const olByValue = 1

    Set objOut = CreateObject("Outlook.application")
    Set objmail = objOut.CreateItem(olMailItem)
    Set objAnexo = objmail.Attachments

    With objmail
        .SentOnBehalfOfName = Me!Conta
        .To = Me("E-mail")
        .Subject = Me!Assunto & " - " & Me!Segurado
        .Body = "Prezados (as)," & vbNewLine & vbNewLine & Saudacao & vbNewLine & vbNewLine _
                & Me!Mensagem & vbNewLine & vbNewLine & vbNewLine & vbNewLine _
                & Me!Assinatura & vbNewLine & vbNewLine
        .Save

 
    'Anexa o BOLETO no e-mail
    strLocalBoleto = CurrentProject.Path & "\Print's\" & Me("Renomear Boleto") & ".pdf"
    If Dir(strLocalBoleto) = "" Then
        bolExisteFicheiro = True
    
    Else
        bolExisteFicheiro = False
        objAnexo.Add strLocalBoleto, olByValue, 1

    End If
    .Display

End With

Set objAnexo = Nothing
Set objmail = Nothing
Set objOut = Nothing

If bolExisteFicheiro Then
    MsgBox "O boleto não foi anexado." & vbNewLine & "Verifique o nome do arquivo ou se ele está salvo no local correspondente."

End If
End Sub

Desde já agradeço muito.

Att,
Cy Rangel



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
cy_rangel
Colaborador
Colaborador
Mensagens: 90
Registrado em: Sex Set 04, 2015 8:32 pm

Re: Adicionar Relatório no corpo do e-mail

Mensagem por cy_rangel » Qui Mai 14, 2020 1:11 pm

Pessoal,

Eu não sei se ajuda, mas encontrei esse tópico no site do "Avelino", tentei aplicar no meu código mas não consegui:

https://www.usandoaccess.com.br/dicas/o ... .asp#video

Desde já agradeço,

Att
Cy Rangel



Avatar do usuário
cy_rangel
Colaborador
Colaborador
Mensagens: 90
Registrado em: Sex Set 04, 2015 8:32 pm

Re: Adicionar Relatório no corpo do e-mail

Mensagem por cy_rangel » Sáb Mai 23, 2020 2:43 am

Pessoal,

Eu consegui adaptar o meu código e inserir o relatório no corpo do e-mail (conforme link acima do fórum do Avelino).

Consegui também adicionar uma mensagem no corpo do e-mail, mas apenas antes do "Relatório", após, eu não consegui de forma alguma, nem mesmo a assinatura com qualquer texto (o que para mim já serviria).

Se alguém ver essa mensagem e souber como e puder ajudar apenas nessa parte de inserir texto após o relatório :)



PS.: Esse código é aplicado dentro de um FRM lincado com um relatório que possuí vários registros.
Existe um outro post meu onde eu deixo o código e o link de como fazer isso (se atentar apenas no formato do arquivo (PDF ou HTML) e se é QRY ou Relatório dentro do Access.
https://www.tomasvasquez.com.br/forum/v ... =12&t=7546

Segue o código:

Código: Selecionar todos

Public Function fncLerArquivo(ByVal strLocalCorpoEmail As String) As String
'É NECESSÁRIO ADICIONAR ESSA FUNÇÃO NO INÍCIO ANTES DE QUALQUER CÓDIGO

Dim objfso As Object
Dim objts As Object

On Error Resume Next

Set objfso = CreateObject("Scripting.FileSystemObject")
Set objts = objfso.GetFile(strLocalCorpoEmail).OpenAsTextStream(1, -2)
fncLerArquivo = objts.readall

objts.Close
Set objfso = Nothing

End Function

Private Sub Btn_Email_Click()

Dim strLocalBoleto As String
Dim bolExisteFicheiro As Boolean
Dim strLocalCorpoEmail As String 'acrescentar essa e a variavel a seguir
Dim strBody As String

Dim objOut As Object
Dim objmail As Object
Dim objAnexo As Object
Const olMailItem = 0
Const olByValue = 1

    Set objOut = CreateObject("Outlook.application")
    Set objmail = objOut.CreateItem(olMailItem)
    Set objAnexo = objmail.Attachments

    With objmail
        .SentOnBehalfOfName = Me!Conta
        .To = Me("E-mail")
        .Subject = Me!Assunto & " - " & Me!Cliente
       
'Gera o relatório em HTML para adicionar no corpo do e-mail
    strBody = "Dê um nome para o seu relatório" & ".html" 'Chama a variavel nome do arquivo
    strLocalCorpoEmail = CurrentProject.Path & "\Print's\" & strBody 'Chama a variavel Local e concatena com o nome do arquivo
    
    DoCmd.OpenReport "NOME DO SEU RELATÓRIO", acViewPreview, , "ID RELATORIO=" & Me!IDFORM, acHidden 'Abre o relatório no registro especifico selecionado no FORM. O 1º nome "ID RELATORIO=" é o nome do campo do seu relatório em Fonte do Controle e o 2º Me!IDFORM é nome do campo do Form (campo "Nome").
    DoCmd.OutputTo acOutputReport, "NOME DO SEU RELATÓRIO", acFormatHTML, strLocalCorpoEmail
    DoCmd.Close acReport, "NOME DO SEU RELATÓRIO" 'Fecha o relatório


'Add o relatório no corpo do email
    .BodyFormat = olFormatHTML
    .HTMLBody = "<BODY Style = Font-size:11pt;font-family:Calibri> Prezados(as),<br><br>" & fncLerArquivo(strLocalCorpoEmail)
     

        .Save

 
    'Anexa o BOLETO no e-mail
    strLocalBoleto = CurrentProject.Path & "\Print's\" & Me("Renomear Boleto") & ".pdf"
    If Dir(strLocalBoleto) = "" Then
        bolExisteFicheiro = True
    
    Else
        bolExisteFicheiro = False
        objAnexo.Add strLocalBoleto, olByValue, 1

    End If
    .Display

End With

Set objAnexo = Nothing
Set objmail = Nothing
Set objOut = Nothing

If bolExisteFicheiro Then
    MsgBox "O boleto não foi anexado." & vbNewLine & "Verifique o nome do arquivo ou se ele está salvo no local correspondente."

End If
End Sub



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder