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]Adicionar Relatorio como anexo automatizado

    avatar
    Josealdo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 14/12/2012

    [Resolvido]Adicionar Relatorio como anexo automatizado Empty [Resolvido]Adicionar Relatorio como anexo automatizado

    Mensagem  Josealdo 11/2/2021, 01:10

    Olá, pessoal no topico anterior eu precisava desenvolver o código para o envio de um email para um grupo de destinatários.

    Segue o codigo abaixo que está funcionando.

    O que estou precisando agora é ao chamar um determinado Relatório, que este já caia direto no email como anexo,  atraves do codigo abaixo.

    Estou estudando mais não estou conseguindo, gostaria de contar com a costumeira colaboração de vocês. Obrigado.


    Código:
    Option Compare Database
    Private Sub EmailAviso_Click()


    Dim varOutlook As Outlook.Application
    Dim varEmail  As Outlook.MailItem
    Dim varMensagem As String
    Dim varNomeDoContato As String

    varNomeDoContato = Nz(Forms![Clientes]![NomeDoContato])

    If varNomeDoContato = "" Then
        
        MsgBox "Nenhum Cliente Está Sendo Exibido no Formulário!!!", _
                vbOKOnly + vbExclamation, "Nenhum Cliente Selecionado"
    End If

    Set varOutlook = GetObject(Class:="Outlook.Application")

    If IsNull(Forms![Clientes]![Email]) Then
            
            MsgBox "Não há um email válido para este cliente. " _
                & "digite um e-mail válido antes de continuar.", _
                vbInformation
            Exit Sub
    End If

    Set varEmail = varOutlook.CreateItem(ItemType:=olMailItem)

    varMensagem = Forms![Clientes]![NomeDoContato] & Chr(13) & Chr(13)
    varMensagem = varMensagem & "msg" & Chr(13) & Chr(13)
    varMensagem = varMensagem & "msg" & Chr(13) & Chr(13)

    With varEmail

        .To = Forms![Clientes]![Email]
        .Subject = "XXXX"
        .BodyFormat = olFormatPlain
        .Body = varMensagem
        .Importance = olImportanceHigh
        .Send
        
    End With
    End Sub
    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2676
    Registrado : 23/01/2018

    [Resolvido]Adicionar Relatorio como anexo automatizado Empty Re: [Resolvido]Adicionar Relatorio como anexo automatizado

    Mensagem  crysostomo 11/2/2021, 12:17

    Bom dia. 
     Fico so de acompanhamento pois estou tentando achar mais não encontro


    .................................................................................
    Obs.: Coloque somente as partes defeituosas para que possamos encontrar e entender  o problema mais rápido para lhe ajudar. Disponho.
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Adicionar Relatorio como anexo automatizado Empty Re: [Resolvido]Adicionar Relatorio como anexo automatizado

    Mensagem  Alvaro Teixeira 11/2/2021, 12:51

    Josealdo gosta desta mensagem

    avatar
    Josealdo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 14/12/2012

    [Resolvido]Adicionar Relatorio como anexo automatizado Empty Re: [Resolvido]Adicionar Relatorio como anexo automatizado

    Mensagem  Josealdo 11/2/2021, 19:07

    Olá

    Pronto já consegui fazer anexar, algora falta só um detalhe: Que é adicionar um numero ao nome do anexo. Para ficar assim: nome arquivo & Numero.PDF. Esse item estou tentando mais não estou conseguindo.

    A ação toda vem de um botão que ao clicar ele solicita esse numero para filtar o Relatorio e anexa no email

    Alguem poderia me auxiliar de como adicionar esse numero ao nome do arquivo PDF? Por favor. (destacado em vermelho no codigo)

    Aqui abaixo o codigo que está funcionando, adaptado de um código do Avelino Sampaio.

    Código:
    Private Sub EmailAviso_Click()
    'by Avelino Sampaio

    Dim strArquivo As String
    Dim strLocal As String
    Dim strAssunto As String
    Dim strCorpo As String
    Dim objOut As Object
    Dim objmail As Object
    Dim objAnexo As Object
    Dim StrNumero As String

    Const olMailItem = 0
    Const olByValue = 1


    If IsNull(Me!Email) Then
        MsgBox "Está faltando o endereço de email...", vbInformation, "Aviso"
        Exit Sub
    End If

    Set objOut = CreateObject("Outlook.application")
    Set objmail = objOut.CreateItem(olMailItem)
    Set objAnexo = objmail.Attachments
    [color=#ff6633]strArquivo = "nomearquivo" & ".pdf"[/color]
    strLocal = CurrentProject.Path & "\enviados\" & strArquivo
    If Me.Dirty Then DoCmd.RunCommand acCmdSaveRecord
    DoCmd.OpenReport "Etiquetas1via", acViewPreview, , , acHidden
    DoCmd.OutputTo acOutputReport, "Etiquetas1via", acFormatPDF, strLocal
    objAnexo.Add strLocal, olByValue, 1

    strAssunto = "XXXXXX "
    strCorpo = "Olá! <br><br> XXXXXX "
    strCorpo = strCorpo & "XXXXX "



    objmail.To = Me!Email 'destinatário
    'objmail.CC = Nz(Me!txCc, "") 'com cópia
    'objmail.BCC = Nz(Me!TxCco, "") 'Com cópia oculta
    objmail.Subject = strAssunto
    objmail.HTMLBody = strCorpo

    objmail.Display 'para enviar direto, altere esta linha para objmail.send

    FileSystem.Kill (strLocal)

    Set objAnexo = Nothing
    Set objmail = Nothing
    Set objOut = Nothing
    End Sub
    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2676
    Registrado : 23/01/2018

    [Resolvido]Adicionar Relatorio como anexo automatizado Empty Re: [Resolvido]Adicionar Relatorio como anexo automatizado

    Mensagem  crysostomo 11/2/2021, 19:31

    Aqui comigo esta dando erro.
    Eu não seu como é esse código , mas você pode fazer um listbox com os pdf salvos e ao clicar em cima do nome ele joga o nome no campo.
    Teixeira, ja sim , pesquisei repositório e outros não consegui encontrar


    .................................................................................
    Obs.: Coloque somente as partes defeituosas para que possamos encontrar e entender  o problema mais rápido para lhe ajudar. Disponho.
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.

    Josealdo gosta desta mensagem

    avatar
    Josealdo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 14/12/2012

    [Resolvido]Adicionar Relatorio como anexo automatizado Empty Re: [Resolvido]Adicionar Relatorio como anexo automatizado

    Mensagem  Josealdo 11/2/2021, 20:40

    Olá @crysostomo, em primeiro obrigado pela dica.

    Mais com a criação de combbox para clicar na lista, vai tornar mais complicado.

    O codigo acima está funcionado com todos os paramentros do e-mail e fazendo a adição do anexo.

    A unica coisa que me falta é na hora de gravar o anexo, que ele contenha no nome do arquivo o numero que é o campo utilizado na pesquisa para abrir  relatório.

    Agradeço antecipadamente.

    No caso nessa linha do codigo:   strArquivo = "nomedoarquivo" & ".pdf"
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Adicionar Relatorio como anexo automatizado Empty Re: [Resolvido]Adicionar Relatorio como anexo automatizado

    Mensagem  Alvaro Teixeira 11/2/2021, 23:46

    Olá a todos,

    Jesualdo, estou no tablet, no código não vejo referencia do número que pretende.

    Caso seja o número do cliente e o campo seja ClienteNr ficaria assim por exemplo:

    strArquivo = "nomedoarquivo" & me.ClienteNr & ".pdf"

    Abraço

    Josealdo gosta desta mensagem

    avatar
    Josealdo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 14/12/2012

    [Resolvido]Adicionar Relatorio como anexo automatizado Empty Re: [Resolvido]Adicionar Relatorio como anexo automatizado

    Mensagem  Josealdo 12/2/2021, 02:03

    @ahteixeira, em primeiro obrigado.

    O número    é um campo com esse mesmo nome na tabela,  e quando chamo o relatório que será enviado o filtro solicita o numero.

    Eu já havia feito igual essa sintaxe mais não funcionou.

    Durante a digitação do codigo apos o "." em Me. não carrega "Numero" na lista de propriedade.

    O codigo está sendo usado em clicar de botão em um formulário. Nesta ação, vai puxar e salvar o Relatorio como PDF à ser anexado no e-mail.

    Agradeço se puder me auxiliar com outra forma.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Adicionar Relatorio como anexo automatizado Empty Re: [Resolvido]Adicionar Relatorio como anexo automatizado

    Mensagem  Alvaro Teixeira 12/2/2021, 13:34

    Olá a todos,

    Jesualdo, como referiu é nesta parte que deve incluir o numero
    Código:
    strArquivo = "nomearquivo" & ".pdf"

    No entanto como desconhecemos os seu projeto, não lhe podemos ajudar a dizer qual o campo, variavel ou objeto que tem o numero para associar ao código acima.
    Se a dúvida se mantiver o melhor será montar pequeno exemplo funcional da parte envolvida na dúvida e partilhar.

    Assim fica mais fácil parar qualquer membro ajudar

    Abraço

    Josealdo gosta desta mensagem

    avatar
    Josealdo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 14/12/2012

    [Resolvido]Adicionar Relatorio como anexo automatizado Empty Re: [Resolvido]Adicionar Relatorio como anexo automatizado

    Mensagem  Josealdo 12/2/2021, 13:48

    Ola @ahteixeira, em primeiro obrigado.

    Então com essa sintaxe não funciona pois o Numero esta no relatório que será o anexo e não esta aberto,  ou seja o codigo esta em um botão em um formulario,  então o item "Numero"  não faz parte deste formulario não aparece nas propriedades   de "Me."

    O Relaório está sendo chamado para se tornar o anexo.  E este ao ser chamado é filtrado pelo "Numero"

    Então o que eu preciso é coleta o Numero da caixa do filtro do relatório (anexo) é isso que não sei fazer.

    Agradeço antecipadamente.



    O Mestre Avelino, me ensinou de como coletar direto do Relatório.

    Foi adicionada a linha abaixo:

    strArquivo = "nomedoarquivo" & reports!nomedorelatorio!campo & ".pdf"

    Gratidão.
    avatar
    Josealdo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 14/12/2012

    [Resolvido]Adicionar Relatorio como anexo automatizado Empty Re: [Resolvido]Adicionar Relatorio como anexo automatizado

    Mensagem  Josealdo 12/2/2021, 15:21

    Finalizado funcionando.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Adicionar Relatorio como anexo automatizado Empty Re: [Resolvido]Adicionar Relatorio como anexo automatizado

    Mensagem  Alvaro Teixeira 12/2/2021, 19:23

    cheers

    Josealdo gosta desta mensagem


    Conteúdo patrocinado


    [Resolvido]Adicionar Relatorio como anexo automatizado Empty Re: [Resolvido]Adicionar Relatorio como anexo automatizado

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/3/2024, 05:24