MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    Enviar relatório pdf por email

    Claudia_p
    Claudia_p
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 30
    Registrado : 06/12/2011

    Enviar relatório pdf por email Empty Enviar relatório pdf por email

    Mensagem  Claudia_p em 13/12/2016, 12:39

    Prezados,

    O código abaixo não funciona, inseri um botão no formulário e vinculei o código, mas ao clicar nada acontece... Poderiam me ajudar?

    Obrigada

    Código:
    Private Sub Comando68_Click()
    On Error Resume Next

    Dim OutApp As Object
    Dim OutMail As Object
    Dim OutAnexo As Object
    Dim strArquivo, strLocal As String
    Const olMailItem = 0
    Const olByValue = 1

    If IsNull(Me.email) Then MsgBox "Email Não Preenchido No Cadastro"
    Exit Sub

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(olMailItem)
    Set OutAnexo = OutMail.Attachments

    strArquivo = Me.cod_orc & "_" & Me.cliente & ".pdf"
    strLocal = "\\PAROLISRV02\Servidor Arquivos\Desenvolvimento\Orçamentos pdf\" & strArquivo

    DoCmd.OpenReport "Orçamento", acViewPreview, , "cod_orc=" & Me.cod_orc
    DoCmd.OutputTo acOutputReport, "Orçamento", "PDFFormat(*.pdf)", strLocal, False, "", 0, acExportQualityPrint
    DoCmd.Close acReport, "Orçamento"
    OutAnexo.Add strLocal, olByValue, 1

    OutMail.To = Me.email
    OutMail.Subject = "Orçamento Parolibor " & Me.cod_orc
    OutMail.Body = "Prezados Srs., segue orçamento conforme solicitado. Agradecemos a oportunidade da consulta."
    OutMail.Display

    Set OutMail = Nothing
    Set OutApp = Nothing
    Set OutAnexo = Nothing


    End Sub
    caiosouza
    caiosouza
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 416
    Registrado : 05/12/2016

    Enviar relatório pdf por email Empty Re: Enviar relatório pdf por email

    Mensagem  caiosouza em 13/12/2016, 16:45

    Boa tarde.

    Esse módulo permite enviar email via outlook, com anexos, assunto, corpo de e-mail e Assinatura padrão


    Adapte de acordo com sua necessidade.

    Código:
    Sub EnviaEmail()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim corpo As String
    Dim strReportName$
    Dim AttachmentPath$
    Dim subject$
    Dim email_to$
    Dim email_cc$
    Dim subpasta As String
    'Variáveis

    subpasta = "Sua Pasta Onde Armazenara Os PDF"
        strReportName = "Seu Relatorio"
        DoCmd.OutputTo acOutputReport, strReportName, acFormatPDF, subpasta & _
                      "\" & "Nome do Documento " & Forms!SeuForm.NumeroSequencial & ".pdf", False
    'Anexa relatório em formato PDF no e-mail
        subject = "Assunto"
        AttachmentPath = subpasta & "\" & "Nome do Documento" & Forms!SeuForm.NumeroSequencial & ".pdf"
        email_to = "para"
        email_cc = "copias"
    'Define os controles para envio de e-mail
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
    'Abre o Outlook.exe
                corpo = "<html><p><span style=""font-family: Calibri; font-size: 11pt;"">Prezados," _
                & "<p>Corpo do E-mail... " _
     _
                & vbCrLf & vbCrLf _
                & "<p>3 Linhas abaixo do Inicio" _
                & "<p>... " _
                & "<p></span></html>"
    'Corpo do e-mail em formato HTML
    With OutMail
            .Display
            .To = email_to
            .CC = email_cc
            .BCC = ""
            .subject = subject
            .Attachments.Add (AttachmentPath)
            .HTMLBody = corpo & "<br>" & .HTMLBody
           
    End With
    'Envia e-mail
        On Error GoTo 0
        Set OutMail = Nothing
        Set OutApp = Nothing
    End Sub



    Esse é o módulo, agora no botão no evento ao clicar, coloque Call EnviaEmail()
    Claudia_p
    Claudia_p
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 30
    Registrado : 06/12/2011

    Enviar relatório pdf por email Empty Re: Enviar relatório pdf por email

    Mensagem  Claudia_p em 14/12/2016, 18:39

    Oi Caio, muito obrigada...

    Salvei em módulo, e vinculei ao botão como indicou, mas aparece o seguinte erro: Erro de compilação. Era esperada variável ou procedimento, não módulo
    Claudia_p
    Claudia_p
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 30
    Registrado : 06/12/2011

    Enviar relatório pdf por email Empty Re: Enviar relatório pdf por email

    Mensagem  Claudia_p em 15/12/2016, 12:23

    Caio
    Já percebi que salvei o módulo com o nome do procedimento, consertei e está funcionando ...
    Outra dúvida como eu posso chamar nesse módulo os controles de formulário para preenchimento de alguns campos, não dá para usar o Me., não sei como referenciar, pode me ajudar novamente....

    Estou tentando desta forma mas não está funcionando, no botão ficou Call EnviaEmail(Form_orcam_form)

    Código:
    Public Sub EnviaEmail(frm As Form)

    Dim OutApp As Object
    Dim OutMail As Object
    Dim corpo As String
    Dim strReportName$
    Dim AttachmentPath$
    Dim subject$
    Dim email_to$
    Dim email_cc$
    Dim subpasta, strArquivo As String

    'Variáveis

    If IsNull(frm.email) Then MsgBox "Email Não Preenchido No Cadastro"
    Exit Sub

    strArquivo = frm.cod_orc & "_" & frm.cliente & ".pdf"
    subpasta = "\\PAROLISRV02\Servidor Arquivos\Desenvolvimento\Orçamentos pdf\" & strArquivo
    strReportName = "Orçamento"
       
        DoCmd.OpenReport "Orçamento", acViewPreview, , "cod_orc=" & frm.cod_orc
        DoCmd.OutputTo acOutputReport, strReportName, acFormatPDF, subpasta & _
                      strArquivo & ".pdf", False
    'Anexa relatório em formato PDF no e-mail
        subject = "Orçamento Parolibor " & frm.cod_orc
        AttachmentPath = subpasta & strArquivo & ".pdf"
        email_to = frm.email

    'Define os controles para envio de e-mail
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
    'Abre o Outlook.exe
                corpo = "<html><p><span style=""font-family: Calibri; font-size: 11pt;"">Prezados Srs., segue orçamento conforme solicitado. Agradecemos a oportunidade da consulta." _
                & "<p>Corpo do E-mail... " _
     _
                & vbCrLf & vbCrLf _
                & "<p>3 Linhas abaixo do Inicio" _
                & "<p>... " _
                & "<p></span></html>"
    'Corpo do e-mail em formato HTML
    With OutMail
            .Display
            .To = email_to
            .CC = email_cc
            .BCC = ""
            .subject = subject
            .Attachments.Add (AttachmentPath)
            .HTMLBody = corpo & "<br>" & .HTMLBody
    End With
    'Envia e-mail
        On Error GoTo 0
        Set OutMail = Nothing
        Set OutApp = Nothing
    End Sub

    Obrigada
    caiosouza
    caiosouza
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 416
    Registrado : 05/12/2016

    Enviar relatório pdf por email Empty Re: Enviar relatório pdf por email

    Mensagem  caiosouza em 15/12/2016, 22:33

    Já tentou Forms!SeuForm!SeuControle ?
    Claudia_p
    Claudia_p
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 30
    Registrado : 06/12/2011

    Enviar relatório pdf por email Empty Re: Enviar relatório pdf por email

    Mensagem  Claudia_p em 17/1/2017, 13:58

    Caio, desculpe a demora em te dar retorno, estava em férias.

    Ficou assim, mas o botão no formulário não funciona... o que será que está errado?

    Código:
    Public Sub EnviaEmail()

    Dim OutApp As Object
    Dim OutMail As Object
    Dim corpo As String
    Dim strReportName$
    Dim AttachmentPath$
    Dim subject$
    Dim email_to$
    Dim email_cc$
    Dim subpasta, strArquivo As String

    'Variáveis

    If IsNull(Forms!orcam_form!email) Then MsgBox "Email Não Preenchido No Cadastro"
    Exit Sub

    strArquivo = Forms!orcam_form!cod_orc & "_" & Forms!orcam_form!cliente & ".pdf"
    subpasta = "\\PAROLISRV02\Servidor Arquivos\Desenvolvimento\Orçamentos pdf"
    strReportName = "Orçamento"
        
        DoCmd.OpenReport "Orçamento", acViewPreview, , "cod_orc=" & Forms!orcam_form!cod_orc
        DoCmd.OutputTo acOutputReport, strReportName, acFormatPDF, subpasta & _
                       "\" & strArquivo & ".pdf", False

    'Anexa relatório em formato PDF no e-mail

        subject = "Orçamento Parolibor " & Forms!orcam_form!cod_orc
        AttachmentPath = subpasta & " \ " & strArquivo & ".pdf"
        email_to = Forms!orcam_form!email
        email_cc = "xxx@xxxx.com.br"
    'Define os controles para envio de e-mail
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
    'Abre o Outlook.exe
                corpo = "<html><p><span style=""font-family: Calibri; font-size: 11pt;"">Prezados Srs., segue orçamento conforme solicitado. Agradecemos a oportunidade da consulta." _
                & "<p>Corpo do E-mail... " _
     _
                & vbCrLf & vbCrLf _
                & "<p>3 Linhas abaixo do Inicio" _
                & "<p>... " _
                & "<p></span></html>"
    'Corpo do e-mail em formato HTML
    With OutMail
            .Display
            .To = email_to
            .CC = email_cc
            .BCC = ""
            .subject = subject
            .Attachments.Add (AttachmentPath)
            .HTMLBody = corpo & "<br>" & .HTMLBody
    End With
    'Envia e-mail
        On Error GoTo 0
        Set OutMail = Nothing
        Set OutApp = Nothing
    End Sub

      Data/hora atual: 2/6/2020, 11:07