代码之家  ›  专栏  ›  技术社区  ›  bd528

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

  •  0
  • bd528  · 技术社区  · 8 年前

    我有一个包含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 回复  |  直到 8 年前
        1
  •  3
  •   Gustav    8 年前

    End 真的是这个意思。

    您的代码将停止并 全部的 变量将被清除。可能不是你想要的。

    推荐文章