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


+4
toyebom
wsenna
vallfon
javs2608
8 participantes

    enviar formulario/relatório por email

    avatar
    javs2608
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3
    Registrado : 21/01/2014

    enviar formulario/relatório por email Empty enviar formulario/relatório por email

    Mensagem  javs2608 21/1/2014, 21:58

    sou novo no forum
    sou um curioso no access só tive um formação básica que fui avancando aos poucos com algumas bases de dados que fui complicando.
    a minha ajuda depreende-se com o seguinte
    tenho uma base de dados criada para gerir funcionários e agora preciso de criar uma macro para que, apos preencher formulário, possa ser enviada por email. eu criei a macro e até trabalha mais ou menos o unico senão é que os dados são enviados por outlook. até aqui tudo bem só que as pessaos que teem que me devolver os formularios ou relatórios tem contas webmail não configuradas no outlook.
    a minha questão é se é possivel eu criar a macro que permita o seu envio sem ser por outlook. tambem ha a situação de que os funcionários teem pouca eperiencia quando ocorrem erros no envio.
    será que voces me podem ajudar
    desde já agradeço

    SouzaRM gosta desta mensagem

    vallfon
    vallfon
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 39
    Registrado : 15/05/2012

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  vallfon 22/1/2014, 22:05

    Tente usar algo desse tipo.

    Sem Usar o Outlook

    O objeto CDO (vem do CDOSYS) é útil quando se deseja enviar um e-mail sem usar o Outlook ou qualquer outro programa cliente de e-mails. Além disso, não interessa a versão do Office que você está usando, você pode mandar uma Planilha ou Intervalo no corpo do e-mail, você pode anexar qualquer arquivo que quiser, e não há aviso de segurança, ótimo para quando se deseja enviar e-mails num laço.

    Obviamente, para enviar uma mensagem de e-mail, por exemplo, pelo GMail, você deve ter uma conta no Gmail.

    Sub EnviarEmailCDO()
       Dim oMensagem As Object
       Dim oConfiguração As Object
       Dim sCorpo As String
       Dim vFields As Variant

       Set oMensagem = CreateObject("CDO.Message")
       Set oConfiguração = CreateObject("CDO.Configuration")

           oConfiguração.Load -1 'Padrões CDO
           Set vFields = oConfiguração.Fields
           With vFields
               .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
               
               'Se quiser enviar um e-mail pelo Windows Live:
               .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.live.com"

               'Se quiser enviar um e-mail pelo Yahoo, substiua a linha acima por:
               '.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")= " smtp.mail.yahoo.com"

               'Se quiser enviar um e-mail pelo GMail, substiua a linha acima por:
               '.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"

               .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
               .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
               
               'Abaixo você preencherá o nome do usuário. Se o seu e-mail é @hotmail, @xbox, @live,
               '@msn ou outros serviços associados à Windows Live, é necessário que você preencha
               'o seu endereço completo no campo abaixo.
               'Se você usa GMail, você deve suprimir o @gmail.com e no campo abaixo deixar apenas
               'o nome do usuário.
               'Em relação ao Yahoo, não testei porque não possuo uma conta. No entanto, provavelmente
               'é necessário especificar o endereço de e-mail completo uma vez que o Yahoo possui variações
               'como @yahoo.com, @yahoo.com.br, @yahoo.co.uk, entre outros.
               .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "felipebenza@hotmail.com"
               .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "SuaSenha"
               .Update
           End With

       sCorpo = "Olá mundo!" & vbNewLine & _
         vbNewLine & _
         "Esta é a linha 1." & vbNewLine & _
         "Esta é a linha 2." & vbNewLine & _
         "Esta é a linha 3." & vbNewLine & _
         "Esta é a linha 4." & vbNewLine
         
       With oMensagem
           Set .Configuration = oConfiguração
           .To = "destinatario@email.com" 'mude aqui para alterar o destinatário
           .CC = "" 'com cópia
           .BCC = "" 'com cópia oculta
           .From = """Benzadeus"" "
           .Subject = "Assunto do e-mail"
           .TextBody = sCorpo
           .Send
       End With
    End Sub
    Se você obteve o erro The transport failed to connect to the server, experimente alterar a porta SMTP de 25 para 465.

    Se o seu provedor não for nenhum da Windows Live, GMail ou Yahoo, consulte qual é o endereço SMTP do seu provedor e substitue na configuração smtpserver do código.

    Se você não quiser nenhum assunto, não apague a linha .TextBody = sCorpo, mas substitua por .TextBody = "". Se você apagar a linha e a propriedade TextBody do objeto CDO.Message não for especificada, um erro será retornado.

    Se quiser enviar para mais de um destinatário de uma vez, em .To utilize a forma:

    .To = "dest1@email.com;dest2@email.com;dest3@email.com"


    Você pode verificar em http://www.ambienteoffice.com.br/officevba/enviar_e-mail_por_vba/
    avatar
    javs2608
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3
    Registrado : 21/01/2014

    enviar formulario/relatório por email Empty envio de email s/outlook

    Mensagem  javs2608 22/1/2014, 23:01

    vallfon
    muito obrigado pela ajuda, no entanto eu não percebo nada de VBA.
    pode me ajudar no sentido de eu saber como insiro a informação que me deu ou, se possivel dizer como posso dar a mesma ordem atraves do access.
    envio em anexo o local onde estou atentar configurar.
    não sei se é por qaui.
    pf me ajude
    muito obrigado
    cump
    jose alexandre
    vallfon
    vallfon
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 39
    Registrado : 15/05/2012

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  vallfon 22/1/2014, 23:31

    No VBE, em seu Formulário podes fazer algo desse tipo.

    Repare que coloquei alguns objetos (TxtOrdemdeServiço, TxtContato, e outros) que contêm as informações do meu formulário. Você deve montar seu e-mail com os seus objetos ou com variáveis que receberam os valores destes.
    Neste código envio um anexo em .pdf por e-mail. Este anexo está no endereço indicado em strLocal. Você pode enviar ou não.
    Boa parte do código você poderá descartar e enviar somente a mensagem que montares na variável sCorpo.
    Precisas fazer referência à biblioteca Microsoft CDO for windows 2000 Library em seu VBE.
    Com este código não precisas de utilizar o OutLook.

    Sub EnviarEmailCDOSolicitante()
    Dim oMensagem As Object
    Dim oConfiguração As Object
    Dim sCorpo As String
    Dim vFields As Variant
    Dim sSolicitante As String
    Dim sMsgTempo As String

    sSolicitante = TxtEmail


    If MsgBox("Comunicar cadastramento da Ordem de Serviço " & TxtOrdemdeServiço & " a(o) " & TxtContato & vbNewLine & _
    "através do e-mail " & sSolicitante, vbYesNo + vbQuestion) = vbYes Then

    If IsNull(sSolicitante) Then
    MsgBox "Não há endereço de e-mail" & Chr(10) & _
    "cadastrado para a Ordem de Serviço " & TxtOrdemdeServiço & "!", vbOKOnly + vbInformation
    Exit Sub
    End If



    If IsNull(TxtEmail) Then
    MsgBox "O e-mail não pode ser enviado!" & Chr(10) & _
    "Verifique a existência do endereço.", vbOKOnly + vbCritical
    Exit Sub
    Else

    Set oMensagem = CreateObject("CDO.Message")
    Set oConfiguração = CreateObject("CDO.Configuration")

    oConfiguração.Load -1 'Padrões CDO
    Set vFields = oConfiguração.Fields
    With vFields
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" 'pode ser usado outro smtpserver
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 ' existem outros smtpserverport. verifique na internet
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "seu endereço de e-mail"
    .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "Sua senha"
    .Update
    End With



    If Format(Now, "hh:mm:ss") >= "00:00:00" And Format(Now, "hh:mm:ss") < "12:00:00" Then
    sMsgTempo = "Bom dia"
    ElseIf Format(Now, "hh:mm:ss") >= "12:00:00" And Format(Now, "hh:mm:ss") < "18:00:00" Then
    sMsgTempo = "Boa tarde"
    ElseIf Format(Now, "hh:mm:ss") >= "18:00:00" And Now = Format(Now, "hh:mm:ss") < "00:00:00" Then
    sMsgTempo = "Boa noite"
    End If

    If MsgBox("Anexar O.S. nº " & TxtOrdemdeServiço & " ao e-mail?", vbYesNo) = vbYes Then
    'Variáveis utilizadas no gerador de pdf
    'Nomeia a Ordem de serviço em pdf
    strArquivo = "OS nº " & Left(Me.OrdemdeServiço, 4) & "-" & Right(Me.OrdemdeServiço, 4) & ".pdf"
    'Define onde será salva e acrescenta o nome
    strLocal = CurrentProject.Path & "\pdf\" & strArquivo
    Else
    strLocal = ""
    End If


    sCorpo = sMsgTempo & ", " & TxtContato & "!" & vbNewLine & _
    vbNewLine & _
    "A sua solicitação de serviço gerou a Ordem de Serviço nº " & TxtOrdemdeServiço & ", " & _
    "encaminhada ao PU/" & CmbDestino & "." & vbNewLine & _
    "Órgão Solicitante: " & CmbOrgSol & vbNewLine & _
    "Local do Serviço: " & TxtLocalServ & vbNewLine & _
    "Tipo de serviço: " & CmbTServ & vbNewLine & _
    "Detalhamneto: " & TxtDetalhe & vbNewLine & _
    "Observação: " & TxtObs & vbNewLine & _
    vbNewLine & _
    "Expedidor: " & CmbExpedidor & ", em: " & TxtDtEntr & vbNewLine



    With oMensagem
    Set .Configuration = oConfiguração
    .To ="vallfon@gmail.com" 'mude aqui para alterar o destinatário
    .CC = "" 'com cópia
    .BCC = "" 'com cópia oculta
    .From = """PU/Nato"" " 'mude para o seu e-mail
    .Subject = "O.S. nº " & TxtOrdemdeServiço ' mude para o assunto que desejar
    .TextBody = sCorpo
    .AddAttachment strLocal
    .Send
    End With
    MsgBox "E-mail enviado a " & TxtContato & "," & Chr(10) & _
    "endereço: " & TxtEmail & " com sucesso!", vbOKOnly
    End If
    Else
    MsgBox "O envio a(o) " & TxtContato & " foi cancelado!", vbOKOnly + vbInformation
    Exit Sub
    End If
    End Sub
    vallfon
    vallfon
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 39
    Registrado : 15/05/2012

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  vallfon 22/1/2014, 23:46

    Para abrir o VBE podes pressionar as teclas Alt+F11.
    Podes, também, abrir seu formulário em MODO DESIGN e na folha de propriedades do seu formulário na aba EVENTO em um dos eventos listados podes clicar nos três pontos (...) e em seguida, em Construtor de Códigos e se abrirá o VBE para edição de códigos.
    O ideal é que tenhas um botão em seu formulário para acionar o código de envio do e-mail. Assi, por exemplo:

    Private Sub Comando1_Click()
    Call EnviarEmailCDOSolicitante
    End Sub
    avatar
    javs2608
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3
    Registrado : 21/01/2014

    enviar formulario/relatório por email Empty macro

    Mensagem  javs2608 23/1/2014, 00:02

    ok
    só amanha no trabalho é que posso fazer o teste( em casa com o outllok trabalha mt bem desde o inicio)
    depois eu digo como correu
    espero não estar a construir uma casa pelo telhado
    mais uma vez muito obrigado e desculpa o incomodo que estou a causar
    cump
    jose alexandre
    vallfon
    vallfon
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 39
    Registrado : 15/05/2012

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  vallfon 23/1/2014, 00:23

    Ok! Disponha.
    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  wsenna 22/3/2014, 19:32

    Olá Vallfon, boa tarde.

    Muito bom seu código, fiz todas as arrumações sugeridas, as caixas de mensagens estão funfando de forma perfeita, entretanto, após alguns segundos recebo uma mensagem assim:

    Erro em tempo de execução '-2147220973 (80040213)':
    Falha na conexão do transporte com o servidor.



    Ao clicar no comando Depurar remete para a linha do código grifada em amarelo Send

    With oMensagem
    Set .Configuration = oConfiguração
    .To = sSolicitante 'mude aqui para alterar o destinatário
    .Cc = "" 'com cópia
    .BCC = "" 'com cópia oculta
    .From = """senna.wagner@gmail.com"" " 'mude para o seu e-mail
    .Subject = "O.S. nº " & Pedido ' mude para o assunto que desejar
    .TextBody = sCorpo
    '.AddAttachment strLocal
    .Send
    End With
    MsgBox "E-mail enviado a " & Solicitante & "," & Chr(10) & _
    "endereço: " & EMail & " com sucesso!", vbOKOnly
    End If
    Else
    MsgBox "O envio a(o) " & Solicitante & " foi cancelado!", vbOKOnly + vbInformation
    Exit Sub
    End If
    End Sub

    Abraços, WSenna
    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    enviar formulario/relatório por email Empty enviar formulario/relatório por email

    Mensagem  toyebom 22/3/2014, 21:23

    eu utilizo este código do autor "by Valdino Campos - CCS Sistemas", se alguem quiser o bd posso disponibilizar:

    Sub EnviarEmail()

    On Error GoTo erromail

    Dim Mens As Object
    Dim Config As Object
    Set Mens = CreateObject("CDO.Message")
    Set Config = CreateObject("CDO.Configuration")

    With Config

    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
    .Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
    .Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = meuemail@gmail.com"
    .Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "minhasenha"
    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60

    .Fields.Update
    End With

    Set Mens = New CDO.Message
    With Mens
    Set .Configuration = Config
    .From = Me.txtNome

    If Not IsNull(Me.txtEmail) Then
    .Sender = Me.txtEmail
    End If

    If Not IsNull(Me.txtCC) Then
    .CC = Me.txtCC
    End If

    If Not IsNull(Me.txtCCO) Then
    .BCC = Me.txtCCO
    End If

    .ReplyTo = "meuemail@gmail.com"

    .BodyPart.Charset = "utf-8"

    .Subject = Me.txtassunto
    .HTMLBody = Me.txtMensagem
    .To = Me.txtEmail

    Dim L As Long
    If Me.lstAnexos.ListCount > 0 Then
    For L = 0 To Me.lstAnexos.ListCount - 1
    .AddAttachment Me!lstAnexos.Column(0, L)
    Next L

    Else
    End If
    .Send
    End With

    Set Mens = Nothing
    Set Config = Nothing
       DoCmd.OpenForm "frmFinalizar"

    erromail:
    If Err.Number = 13 Then
       Resume Next
    ElseIf Err.Number = -2147220979 Then
       DoCmd.Close acForm, "frmProgresso"
       MsgBox "Você inseriu um endereço de email inválido ou inexistente." & vbCrLf & "Verifique o email e tente novamente.", vbOKOnly + vbCritical, "Email inválido"
       DoCmd.Close acForm, "frmFinalizar"
       Me.txtEmail.SetFocus
    Else
       Resume Next
    End If

    End Sub


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  wsenna 23/3/2014, 00:23

    Olá Toyebom, boa noite.

    Fico grato por sua ajuda, tentarei usar esse código por você indicado em outro formulário.
    No caso acima consegui corrigir algumas informações inconsistentes no código do nosso amigo Vallfon que descrevo a seguir:

    Ao utilizar o gmail devemos utilizar as linhas:
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
    e podemos e devemos acrescentar as linhas:
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60

    Dessa forma o e-mail foi enviado com perfeição.

    De qualquer forma, fico muito grato ao Amigão Vallfon por ter disponibilizado este código.

    Abraços, WSenna
    avatar
    williamsbarros
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 65
    Registrado : 31/03/2012

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  williamsbarros 1/4/2014, 19:25

    Olá Toyebom.

    Poderia me enviar o banco para eu estudar o exemplo melhor?

    email: williamsbarros@yahoo.com.br
    att,
    Wiliams.
    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  wsenna 2/4/2014, 16:14

    Olá Williams, bom dia.

    Se é o exemplo que desenvolvi com a ajuda das Feras deste Forum, acabei de enviar pro eu e-mail de forma zipada como anexo utilizando o próprio exemplo.

    Abraços, WSenna
    anderson_cgms
    anderson_cgms
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 248
    Registrado : 26/03/2012

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  anderson_cgms 2/4/2014, 16:55

    Olá toyebom e wsenna,


    Se possível poderia disponibilizar o BD modelo.


    Certo da boa atenção agradeço.

    Att,
    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  wsenna 2/4/2014, 17:07

    Olá Anderson, bom dia.

    Amigão, veja o link:

    http://maximoaccess.forumeiros.com/t18166-enviar-e-mails-para-varios-destinatarios-com-anexos-via-cdo

    Abraços, WSenna
    anderson_cgms
    anderson_cgms
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 248
    Registrado : 26/03/2012

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  anderson_cgms 2/4/2014, 17:31

    Esta dando erro conforme segue anexo...


    Poderia me ajudar.
    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  wsenna 2/4/2014, 19:03

    Caro Anderson, qual erro você se refere?

    Aguardando, WSenna
    anderson_cgms
    anderson_cgms
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 248
    Registrado : 26/03/2012

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  anderson_cgms 2/4/2014, 19:10

    desculpe -me não mandei o anexo   Embarassed
    Anexos
    enviar formulario/relatório por email Attachmentimagem1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (236 Kb) Baixado 33 vez(es)
    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  wsenna 2/4/2014, 19:40

    Valew Anderson.


    Trata-se de uma Dll que todos nós que utilizamos o Access deveríamos ter no diretório C:\Window\System32 mas você pode extraí-la para a pasta onde descompactou o sue exemplo.

    Segue a Dll.


    Abraços, WSenna
    anderson_cgms
    anderson_cgms
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 248
    Registrado : 26/03/2012

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  anderson_cgms 2/4/2014, 19:51

    A DLL deu certo.

    Novo erro segue em anexo.


    Ao depurar aponta para em vermelho.


    End If
    .From = """anderson.garcia@dieselbrax.com.br"" " 'mude para o seu e-mail
    .Subject = " Ordem de compra " & Assunto ' mude para o assunto que desejar
    .TextBody = sCorpo
    If Not IsNull([arquivo]) Then
    .AddAttachment strLocal
    Else: End If
    .Send
    End With
    DoCmd.Close acForm, "frmProgresso"
    MsgBox "E-mail enviado com sucesso.   ", vbInformation, "  InfoBasic Smart System"
    End If
    Exit Sub
    Anexos
    enviar formulario/relatório por email Attachmentimagem.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (370 Kb) Baixado 12 vez(es)
    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  wsenna 2/4/2014, 20:25

    Vá em referências e verifique se seu access possui a referência abaixo:


    Microsoft CDO for Windows 2000 Library

    Encontrando ative-a


    WSenna
    anderson_cgms
    anderson_cgms
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 248
    Registrado : 26/03/2012

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  anderson_cgms 2/4/2014, 20:52

    Referencia ativada porém o erro continua  Sad 
    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  wsenna 2/4/2014, 23:51

    Olá Anderson, boa noite.

    Você executou o exemplo que disponibilizei ou já tentou adapta-lo a algum projeto seu?

    Outra, qual a versão de seu access?

    De qualquer forma, tente esse abaixo, é o mesmo mas como diz a propaganda: Vai que...
    anderson_cgms
    anderson_cgms
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 248
    Registrado : 26/03/2012

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  anderson_cgms 3/4/2014, 14:23

    Bom dia wsenna,

    Com a nova cópia deu certo o envio, porém foi sem alterar o e-mail e senha do remetente.

    na primeira cópia eu tinha alterado tal dados e provavelmente fiz algo errado  Embarassed 

    Vou tentar de novo e muito obrigado pelo tempo disposto a ajudar a minha pessoa, e peço desculpas ao amigo javs2608 por ter usado seu tópico, "alias, a guantas anda sua duvida amigo javs2608???".


    Att,
    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  wsenna 3/4/2014, 14:45

    Olá Anderson, bom dia.

    Amigão veja isto:

    With vFields
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" 'pode ser usado outro smtpserver
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 ' existem outros smtpserverport. verifique na internet
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "SeuEmail@gmail.com"
    .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "SuaSenha"
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60

    .
    .
    .
    .
    .From = """SeuEmail@gmail.com"" " 'mude para o seu e-mail

    Altere os campos em negrito e em azul, valew?

    Outro detalhe, a configuração acima está pronta para o Gmail caso pretenda utilizar outro smtpserverport terá que procurar a porta correta porém lembre-se que nem todos os provedores de e-mail são compatíveis com o sistema CDO ou dão uma mão de obra tremenda para serem configurados, portanto, mais fácil é você criar um e-mail no Google Gmail e fazer apenas as alterações acima.


    Abraços, WSenna
    anderson_cgms
    anderson_cgms
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 248
    Registrado : 26/03/2012

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  anderson_cgms 3/4/2014, 15:31

    Trabalho em uma empresa que tem domínio próprio "dieselbrax.com.br", pensei poder usa-lo, mas seguirei teu conselho.

     cheers  Um grande abraço.
    avatar
    7leandro
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1
    Registrado : 08/06/2014

    enviar formulario/relatório por email Empty Enviar email apenas se alterado algum campo

    Mensagem  7leandro 8/6/2014, 16:28

    Bom Dia,

    Primeiro queria dar parabens pelo conteúdo e explicações do forum.
    Estou realizando minhas primeiras implementações em Access e o site tem sido muito util.

    Queria aproveitar ainda para perguntar se é possível enviar email com um relatório sempre que atualizado um campo de uma tabela.

    Agradeço antecipadamente
    avatar
    ifahidalgo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 381
    Registrado : 13/10/2011

    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  ifahidalgo 29/10/2020, 19:25

    senhores, desculpa minha ignorância, mas gostaria de uma tratativa de erro, no ".send", do tipo que se os parâmetros de envio estiver errado ele informe na tela.

    Conteúdo patrocinado


    enviar formulario/relatório por email Empty Re: enviar formulario/relatório por email

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 02:21