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

    Envio de relatório por e-mail

    Compartilhe
    avatar
    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! :/
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3706
    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.]
    avatar
    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?
    avatar
    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

    ???
    avatar
    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\)
    avatar
    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: Seg 18 Dez 2017, 06:57