MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    Envio de relatório por e-mail

    Compartilhe

    Caio
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 301
    Registrado : 27/04/2015

    Envio de relatório por e-mail

    Mensagem  Caio em Qui 03 Nov 2016, 11:02

    Bom dia,

    Gostaria de saber porque nesse código esta gerando um arquivo em pdf na mesma pasta onde está o sistema.

    Botão:
    Código:
    Private Sub enviar_Click()
    'Abri relatório de acordo com o número da Solicitação
        DoCmd.OpenReport "rlt_visualizar", acViewPreview, , "Solicitacao = " & Me!NumeroSolicitação
    'Enviar Relatório por e-mail
        Call EnviaEmail
        'Fecha relatório
        DoCmd.Close acReport, "rlt_visualizar"
    'Abre relatório para imprimir
        DoCmd.OpenReport "Solicitação de EPI'S", acViewPreview, , "Solicitacao = " & Me!NumeroSolicitação

        Msgbox "Registro enviado", vbInformation
    End Sub

    Sub:
    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$
    'Variáveis
        strReportName = "rlt_visualizar"
        DoCmd.OutputTo acOutputReport, strReportName, acFormatPDF, CurrentProject.Path & _
                      "\" & "Solicitação " & Forms!fml_solicitante.NumeroSolicitação & ".pdf", False
    'Anexa relatório em formato PDF no e-mail
        subject = "Solicitação de EPI's - " & Forms!fml_solicitante.NumeroSolicitação
        AttachmentPath = CurrentProject.Path & "\" & "Solicitação " & Forms!fml_solicitante.NumeroSolicitação & ".pdf"
        email_to = "caio.souza"
        email_cc = ""
    '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>Segue anexo referente a Solicitação " & Forms!fml_solicitante.NumeroSolicitação _
     _
                & vbCrLf & vbCrLf _
                & "<p>Fico no aguardo de sua manifestação favorável e dispostos a quaisquer esclarecimentos. " _
                & "<p>Por gentileza, confirmar o recebimento da e-mail. " _
                & "<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
            .Send
    End With
    'Envia e-mail
        On Error GoTo 0
        Set OutMail = Nothing
        Set OutApp = Nothing
    End Sub

    A ideia é apenas enviar por e-mail! :/

    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3236
    Registrado : 20/04/2011

    Re: Envio de relatório por e-mail

    Mensagem  Silvio em Qui 03 Nov 2016, 11:20

    Bom dia..

    Por causa dessa linha:

    AttachmentPath = CurrentProject.Path & "\" & "Solicitação " & Forms!fml_solicitante.NumeroSolicitação & ".pdf"

    CurrentProject.Path...local onde está o sistema


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]

    Caio
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 301
    Registrado : 27/04/2015

    Re: Envio de relatório por e-mail

    Mensagem  Caio em Qui 03 Nov 2016, 11:31

    Alguma sugestão para consertar isso?

    Caio
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 301
    Registrado : 27/04/2015

    Re: Envio de relatório por e-mail

    Mensagem  Caio em Seg 07 Nov 2016, 11:11

    ???

    cr4x
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 22/07/2015

    Re: Envio de relatório por e-mail

    Mensagem  cr4x em Qua 23 Nov 2016, 17:41

    Cara, esse CurrentProjectPath é como se pegasse o projeto (no caso, o seu sistema), e copiasse o caminho do mesmo. Se seu sistema estiver na raiz do C: do seu computador, a CurrentProjectPath vai ser o "C:". Daí ele concatena com o "\", ficando "C:\" e logo depois concatena o nome da pasta "Solicitação", ficando "C:\Solicitação". Se você quiser mudar isso, vai ter que tirar esse CurrentProjectPath e digitar o caminho inteiro ate onde você quer que salve.

    Exemplo:

    Você quer salvar na pasta Documentos, então ao inves de

    Código:
    CurrentProject.Path & "\" & "Solicitação " & Forms!fml_solicitante.NumeroSolicitação & ".pdf", False

    deve colocar

    Código:
    C:\Users\<nomedousuario>\Documents\Solicitação\ " & Forms!fml_solicitante.NumeroSolicitação & ".pdf", False

    Não esqueça das barras, e é melhor se não usar acento no nome da pasta, (ao invés de Solicitação, colocar Solicitacao\)

    Caio
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 301
    Registrado : 27/04/2015

    Re: Envio de relatório por e-mail

    Mensagem  Caio em Qua 23 Nov 2016, 17:47

    cr4x muito obrigado pela explicação, na verdade peguei essa Sub aqui no fórum e adaptei.

    Oque eu queria mesmo é que não salvasse o arquivo em pdf, gostaria que apenas mandasse o relatório em formato pdf por e-mail.

    Se retirar a linha, da erro.

      Data/hora atual: Sex 09 Dez 2016, 11:30