访问计时器VBA只发送一次运行的电子邮件

时间:2018-02-19 10:07:16

标签: vba ms-access outlook access-vba

我有一个包含2个子表单的表单。一个子窗体有一个30分钟的计时器来刷新运行良好的数据。另一个子表单具有以下代码,用于在设定的时间发送电子邮件

If DLookup("SCHEDULEDATETIME", "TBLSCHEDULERNEW", "SCHEDULETYPE='AWAITREG'") >= Date Then
    End
End If

If TimeValue(Now()) > #9:00:00 AM# Then
        Set oApp = CreateObject("Outlook.application")        
        Set oMail = oApp.CreateItem(olMailItem)
        oMail.Body = "email"
        oMail.Subject = "Test Subject"
        oMail.To = "xxx@xxx.com"
        oMail.Send
        Set oMail = Nothing
        Set oApp = Nothing
End If

strsql = "update TBLSCHEDULERNEW set SCHEDULEDATETIME =trunc(sysdate) WHERE SCHEDULETYPE='AWAITREG';"

With MyCon
    .Open "xxx", "xxx", "xxx"
    .Execute strsql
    .Close
End With

我还有其他代码来检查电子邮件是否已经发送,这样可以正常使用

这只运行一次。我必须在设计视图中打开表单,然后再次使用表单视图以便代码开始工作。为什么会这样?

我需要以这种方式安排电子邮件发送,而不是SendObject,因为我需要附加格式化的Excel电子表格。

编辑 - 我现在不认为这与发送电子邮件有关,因为代码似乎根本就被调用了 - 我只用msgbox进行了测试。

1 个答案:

答案 0 :(得分:3)

End真的意味着。

您的代码将停止,所有变量将被清除。可能不是你想要的。