¿Como retrasar la hora de lanzar un email desde Access (Vba)?

A tod@s!

Desde Access lanzo un email cuando se produce un evento quiero que este email quede creado y lanzarlo a las 08:¿00 del dia siguiente como hacerlo?. ¿Se puede programar la hora?

Llamando a este procedimiento y pasando datos en EmailPara, EmailTitulo, EmailCuerpo.

Sub EnviarEMAIL()
On Error Resume Next
'Enviamos Email
Set oApp = CreateObject("Outlook.Application")
Set oMail = oApp.CreateItem(olMailItem)
With oMail
.To = EmailPara
.Subject = Nz(EmailTitulo, "")
.Body = Nz(EmailCuerpo, "")
.Importance = olImportanceHigh
.Send
End With
Set oApp = Nothing
'EmailPara 'EmailTitulo 'EmailCuerpo
End Sub

2 Respuestas

Respuesta

Vamos a ver si consigo explicarme. Para que suceda un hecho, la aplicación, en este caso la base, tendría que estar abierta. Y vamos a suponer que tienes un formulario que se muestra en primer plano, al que para el ejemplo llamaremos Principal. En sus propiedades-eventos- Al cargar puedes poner

me.timerinterval=60000 ( es decir, el intervalo será de un minuto)

y en el evento Al cronómetro

Private Sub Form_Timer()
If Time() = #8:00:00 AM# Then
call EnviarEmail
End If
End Sub

Es decir, que si son las 8 de la mañana, llame al procedimiento EnviarEmail

Respuesta

Sí, el código que necesitas es este;

Application. Wait Now + TimeValue("00:00:05")

Tú especificas los segundos a esperar, claro que igual para programar puedes condicionar con el valor de una celda, es decir que en A1 tienes "=Ahora()". En B1 = "=SI(Range("A1")="aquí va tu parámetro","Enviar Correo","Espera".
Entonces relacionas ese valor con una macro que envíe tu correo, tipo;

If Sheets("Correo").Range("B1").Value = "Enviar Correo" then Call Envia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas