Enviar correo automático al llegar a una fecha

Quiero mandar una carta por correo automáticamente cuando llegue a una "Fecha_prevista". He creado este código pero me manda el correo una y otra vez. Como puedo hacer para que se envíe una sola vez.

Gracias de antemano

If (Me.Fecha_prevista - Date) = 0 Then
If Nz(Me.Riesgo, "") = "" Then Exit Sub
If IsNull(Forms!Evaluaciones!mail_centro) Or Forms!Evaluaciones!mail_centro = "" Then
MsgBox ("HAGA DOBLE CLICK EN DESTINATARIO PARA AÑADIR EMAIL"), vbInformation, "AVISO"
Exit Sub
Else
DoCmd.OpenReport "Carta", acPreview, , "[idrieeva]=" & Me![Idrieeva]
DoCmd.SendObject acSendReport, "Carta", "PDF Format(*.pdf)", "'" & Forms!Evaluaciones![mail_centro] & "'", , , "Envio de Certificado", "Estimado amigo: Te mando recuerdos y un certificado", True
End If
End If

2 Respuestas

Respuesta
2

Esa condición se cumplirá siempre que se ejecute ese código durante el día Fecha_prevista. Ten en cuenta que no se enviará si no es el mismo día (si fue ayer, aunque ayer no se enviase).

Necesitas guardar un log y comprobar que no se ha enviado todavía o bien cambiar la Fecha_prevista para que la condición no se cumpla más.

Podrías por ejemplo añadirle Time a la Fecha_prevista (y guardarla en el formulario). Así, te sirve para que la condición no sea cierta y además registras la hora a la que se envió el correo.

* Eso servirá siempre que el correo no lo envíes a las 00:00:00.

Respuesta
2

Para evitar que se repita, bastaría con cambiar (o actualizar) la fecha prevista, esto es: calcular y guardar la próxima 'fecha prevista' tras enviar el correo con éxito.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas