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


2 participantes

    Enviar email com base em uma data específica

    avatar
    dacapo21
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 05/10/2012

    Enviar email com base em uma data específica Empty Enviar email com base em uma data específica

    Mensagem  dacapo21 9/10/2012, 17:08

    Olá pessoal, sou novo por aqui e não tenho muito conhecimento em programação, porém estou tentando desenvolver um banco. Com base em alguns exmplos do Fórum consegui fazer precisa, mas agora estou batendo cabeça para aprimorar o trabalho. Tenho um formulário com um botão para enviar email com base no registro atual, porém preciso que o email seja disparado automaticamente quando o campo DtVencimento for igual a data de hoje.

    Segue o código que estou usando no botão ao clicar, algúem consegue me ajudar?

    Valeu!

    Private Sub Notificar_Click()
    Set myOlApp = CreateObject("Outlook.Application")
    Set myItem = myOlApp.CreateItem(olMailItem)
    Set myAttachments = myItem.Attachments

    With myItem
    .To = Me.Email.Value
    .Subject = Me.COD.Value & " " & Me.Nome.Value & " - Versão " & Me.NRevisao.Value
    .Body = Me.NFocal.Value & ", o documento acima vencerá em " & Me.Texto24.Value & ". Segue anexo a última versão do documento para inicico do processo de revisão."
    .Save
    myAttachments.Add Me.Rota.Value
    .send
    End With

    End Sub
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    Enviar email com base em uma data específica Empty Re: Enviar email com base em uma data específica

    Mensagem  criquio 9/10/2012, 17:19

    Olá, seja bem vindo ao fórum!

    Primeiro, seria interessante colocar um campo na tabela para gerenciar se o email já foi enviado ou não. Isso porque ao colocar isso de forma automática, vamos supor que você abra o aplicativo e será feita a verificação da data de vencimento e o email será enviado para as datas já vencidas. Se por algum motivo o aplicativo for fechado e precisar abri-lo novamente, o email será novamente enviado. Assim sendo, ao enviar o email, colocaria-se um "Enviado" nesse campo que pode se chamar Status. Na função, programa-se para enviar apenas para os registros cuja data já tenha vencido e cujo Status seja diferente de "Enviado".

    Na sua função, pode acrescentar algo assim:

    Código:
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM NomeDaTabela WHERE DataVencimento>=#" & Date & "# And Status <> 'Enviado'"

    If rs.RecordCount > 0 Then

    Do While Not rs.EOF

    Seu código já existente aqui, mudando os campos do form para os da tabela (rs!Email no lugar de Me.Email.Value por exemplo)

    CurrentDb.Execute "UPDATE NomeTabela SET Status ='Enviado'"
    rs.MoveNext
    Loop

    End If

    rs.Close
    Set rs = Nothing
    A linha do UPDATE passa o campo Status para "Enviado" para evitar que o email seja enviado novamente.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    dacapo21
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 05/10/2012

    Enviar email com base em uma data específica Empty Re: Enviar email com base em uma data específica

    Mensagem  dacapo21 9/10/2012, 19:10

    Criquio, obrigado pela resposta, mas agora não esta enviando o email, mesmo clicando no botão, veja se fiz algo errado, só troquei o nome de alguns campos pelo nome dos campos da tabela. Não dá mensagem de erro, porém não acontece nada.

    Obrigado

    Private Sub Notificar_Click()
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TCadastroDoc WHERE Alerta>=#" & Date & "# And Status <> 'Enviado'")
    If rs.RecordCount > 0 Then
    Do While Not rs.EOF

    Set myOlApp = CreateObject("Outlook.Application")
    Set myItem = myOlApp.CreateItem(olMailItem)
    Set myAttachments = myItem.Attachments
    Set myAttachments1 = myItem.Attachments

    With myItem
    .To = rs!Email
    .Subject = rs!COD & " " & rs!Nome & " - Versão " & rs!NRevisao
    .Body = rs!NFocal & ", o documento acima vencerá em " & Me.DtVencimento.Value & ". Segue anexo a última versão do documento para inicico do processo de revisão."
    .Save
    myAttachments.Add rs!Rota
    myAttachments1.Add rs!Rota1
    .send
    End With

    CurrentDb.Execute "UPDATE TCadastroDoc SET Status ='Enviado'"
    rs.MoveNext
    Loop
    End If
    rs.Close
    Set rs = Nothing

    End Sub



    Conteúdo patrocinado


    Enviar email com base em uma data específica Empty Re: Enviar email com base em uma data específica

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/5/2024, 13:26