MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


3 participantes

    [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo

    Fabrícia Lima
    Fabrícia Lima
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 60
    Registrado : 17/06/2013

    [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo Empty [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo

    Mensagem  Fabrícia Lima 7/11/2015, 16:40

    Olá pessoal,

    Estou criando uma BD de controle na emissão de etiquetas, a qual preciso criar um botão de envio no proprio relatório.
    Até aí tudo bem, eu consigo enviar o relatório em anexo, mas o dilema está em criar um código VBA que o faça ser enviado também no corpo do email em formato HTML.

    Alguém tem alguma sugestão de código para compartilhar.
    Abaixo o código:

    Private Sub SendEmail_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


    'Set objOut = CreateObject("Outlook.application")

    Set objmail = objOut.CreateItem(olMailItem)

    '------------------------------------------------------------
    'Abrindo a opção anexo
    'Similar ao clicar no botão ANEXO do Outlook
    '------------------------------------------------------------
    Set objAnexo = objmail.Attachments

    '---------------------------------------------------------------------------------
    '---------------------------------------------------------------------------------
    strArquivo = Replace(Me!Relato, "/", "_") & " .pdf"
    strLocal = CurrentProject.Path & "\enviados\" & strArquivo

    'Salvando alterações no registro
    If Me.Dirty Then DoCmd.RunCommand acCmdSaveRecord

    DoCmd.OpenReport "TesteRFuncionario", acViewPreview, acHidden

    DoCmd.Close acReport, "TesteRFuncionario"

    '--------------------------------------------------------
    'adiciona o arquivo pdf no anexo
    '-------------------------------------------------------
    objAnexo.Add strLocal, olByValue, 1
    objmail.To = "Dias, Ever J.P."
    objmail.CC = "Paiva, Monica K.N"
    objmail.Subject = "Relatório"



    objmail.Display


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

    End Sub
    wellingtoneo
    wellingtoneo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 294
    Registrado : 30/07/2012

    [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo Empty Re: [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo

    Mensagem  wellingtoneo 15/11/2015, 14:16

    Fabrícia, passei pelo mesmo problema e a minha solução foi criar parte do condigo em HTML. E no objeto email tem uma propriedade HTMLBody que escreve no corpo do email neste formato, veja um parte do código empregado.

    Código:
           corpo = corpo & "<b>Prezado(a)</b>"
           corpo = corpo & "<p>Comunicamos que o vencimento referente ao boleto </p>"
           corpo = corpo & "<p><b>" & Format(DLookup("Folha", "tbl_Folha"), "mm/yyyy") & "</b> relacionado ao serviços junto </p><p>ao Grupo Sistem & Well prestados a Sr(a)." & destinatario & " será <b>" & dt & "</b>.</p>"
           corpo = corpo & "<p>Segue abaixo dados para pagamento:</p>
           corpo = corpo & "<p><b>Banco: " & Banco & "</b> </p>"
           corpo = corpo & "<p><b>Agência: " & Agencia & "</b></p>"
           corpo = corpo & "<p><b>Favorecido: " & Favorecido & "</b></p>"
           corpo = corpo & "<p><b>CNPJ: " & CNPJ & "</b></p>"
           corpo = corpo & "<br>"
           corpo = corpo & "<p>Qualquer dúvida estamos a disposição.</p>"
           corpo = corpo & "<p>Cordialmente,</p>"

    With Mens
         Set objOutlookRec = .Recipients.Add("email@com.br")
        .To = textoI
        .Subject = assunto
        .HTMLBody = corpo
        .Display
        '.Send
    End With
    Fabrícia Lima
    Fabrícia Lima
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 60
    Registrado : 17/06/2013

    [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo Empty Re: [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo

    Mensagem  Fabrícia Lima 15/11/2015, 17:14

    Muito bom mesmo...

    Vou testar aqui!
    Fabrícia Lima
    Fabrícia Lima
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 60
    Registrado : 17/06/2013

    [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo Empty Re: [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo

    Mensagem  Fabrícia Lima 17/11/2015, 02:05

    Não consigo adptar ao meu código, será que necessita de alguma função pra ele funcionar?
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3880
    Registrado : 04/04/2010

    [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo Empty Re: [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo

    Mensagem  Avelino Sampaio 17/11/2015, 07:40

    Olá!

    neste meu artigo tem um exemplo:

    http://www.usandoaccess.com.br/dicas/outlook-anexos-richtext-account.asp?id=1&idlista=18#inicio

    Bom estudo!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    Fabrícia Lima
    Fabrícia Lima
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 60
    Registrado : 17/06/2013

    [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo Empty Re: [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo

    Mensagem  Fabrícia Lima 18/11/2015, 03:03

    Avelino é muito bom seu exemplo.
    mas a minha necessidade é adaptar esse código ao botão enviar sem o formulario de envio.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3880
    Registrado : 04/04/2010

    [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo Empty Re: [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo

    Mensagem  Avelino Sampaio 18/11/2015, 07:12

    Olá!

    então, primeiro vc deve salvar o relatório no formato Html. Exemplo:

    docmd.OutputTo acOutputReport,"NomeRelatório",acformatHtml,"c:\SuaPasta\NomeRelaório.html",,,,acExportQualityPrint


    Depois aplique a função fncLerArquivo() sugerida no artigo

    ...
    .BodyFormat = olFormatHTML
    .HTMLBody = fncLerArquivo("c:\SuaPasta\NomeRelatório.html")
    ...


    Sucesso!



    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    wellingtoneo
    wellingtoneo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 294
    Registrado : 30/07/2012

    [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo Empty Re: [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo

    Mensagem  wellingtoneo 20/11/2015, 14:39

    Fabricia, a sugestão do mestre Avelino, cabe melhor na sua necessidade... Tente aplicá-la e qualquer dúvida reporte ao fórum.
    Fabrícia Lima
    Fabrícia Lima
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 60
    Registrado : 17/06/2013

    [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo Empty Re: [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo

    Mensagem  Fabrícia Lima 22/11/2015, 11:43

    Eu consegui adpatar.
    Funcionou perfeitamente o anexo no corpo do email.
    Mas no meu BD esta dando erro no codigo abrir anexos com a mensagem "O tipo definido pelo usuario, nao foi definido".

    Só pra finalizar, me ajuda Avelino.

    Public Function fncLocalizarArquivo()
    Dim fd As Office.FileDialog
    On Error GoTo trataerro
    Set fd = Application.FileDialog(msoFileDialogOpen)
    With fd
    With .Filters
    .Clear
    '.Add "Banco de Dados", "*.accdb", 1
    .Add "Todos", "*.*", 1
    End With
    .Title = "Selecionar Banco de Dados)"
    .AllowMultiSelect = False
    .InitialFileName = "c:\"
    .InitialView = msoFileDialogViewPreview
    If .Show Then
    fncLocalizarArquivo = .SelectedItems(1)
    End If
    End With
    sair:
    Exit Function
    trataerro:
    fncLocalizarArquivo = ""
    Resume sair:
    End Function

    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3880
    Registrado : 04/04/2010

    [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo Empty Re: [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo

    Mensagem  Avelino Sampaio 22/11/2015, 15:06

    Olá!

    Ative a referência MICROSOFT OFFICE XX.X OBJECT LIBRARY

    XX.X depende da versão do seu Office (12.0 - 2007 / 14.0 - 2010 / 15.0 - 2013 / 16.0 - 2016)

    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    Fabrícia Lima
    Fabrícia Lima
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 60
    Registrado : 17/06/2013

    [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo Empty Re: [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo

    Mensagem  Fabrícia Lima 22/11/2015, 15:59

    Obrigado muito útil...

    Conteúdo patrocinado


    [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo Empty Re: [Resolvido]Enviar relatório por e-mail anexo e como mensagem no corpo

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 11:46