2017-07-31 82 views
1

我有一個訪問宏,運行一組Netezza查詢並將結果上傳到數據庫。然後打開並刷新一個利用這些數據並將文件保存在幾個位置的Excel文件。最後,它會編寫一個自動發送的電子郵件並將其發送到通訊組列表。當我手動運行宏時,一切都完美無缺。Access 2013 - 自動發送電子郵件與Outlook和Windows任務計劃程序

爲了讓自己的生活更輕鬆一點,我使用Windows Task Scheduler(Windows 10)每天自動啓動一次宏,這就是我的問題所在。任務計劃程序關閉宏,關閉所有查詢,保存Excel文件,但不發送電子郵件。

下面是我使用

Sub sendOutlookEmail() 

Dim oApp As Outlook.Application 
Dim oMail As MailItem 
Dim SpDate As String 
Dim Signature As String 
Dim StrPath As String 
Dim StrFilter As String 
Dim StrFile As String 

SpDate = Format(Now() - 1, "yyyy-mm-dd") 


Set oApp = CreateObject("Outlook.application") 

Set oMail = oApp.CreateItem(olMailItem) 
With oMail 
    .Display 
End With 

    Signature = oMail.HTMLBody 

With oMail 

    .SentOnBehalfOfName = "My Email" 
    .To = "CCO Reporting" 
    .Subject = "AHT - ACW Dashboard - " & SpDate 
    .HTMLBody = "<span LANG=EN>" _ 
       & "<font FACE=SegoeUI SIZE = 3>" _ 
       & "The IB/OB AHT - ACW reports have been updated and placed in the following folder:" _ 
       & "<br><br>" _ 
       & "<a href='File Location'>File Location</a>" & "<br><br><br></font></span>" _ 
       & Signature 
    '.Attachments.Add (StrPath & StrFile) 
    '.Display 
    .Send 

End With 

On Error GoTo 0 

Set oMail = Nothing 
Set oApp = Nothing 
End Sub 

下面的代碼SendOutlookEmail代碼的任務調度設置 Task Scheduler

回答

0

展望可能只是沒有足夠的時間來發送消息,因爲它在郵件移動到發件箱後立即關閉(.send根據我所知不會發送郵件,但只是將其移動到發件箱並觸發發送所有郵件)。

嘗試手動添加發送/接收,使訪問等待Outlook以實際發送郵件(在Set oApp = Nothing之前添加到您的VBA):

' Synchronizes (ie sends/receives) OL folders. 
' Ref: http://msdn.microsoft.com/en-us/library/ff863925.aspx 

Dim objNsp As Outlook.NameSpace 
Dim colSyc As Outlook.SyncObjects 
Dim objSyc As Outlook.SyncObject 
Dim i As Integer 

On Error GoTo SyncOL_Err 



Set objNsp = oApp.Application.GetNamespace("MAPI") 
Set colSyc = objNsp.SyncObjects 

For i = 1 To colSyc.Count 
    Set objSyc = colSyc.Item(i)  
    Debug.Print objSyc.Name 
    objSyc.start 
Next 



Set objNsp = Nothing: Set colSyc = Nothing: Set objSyc = Nothing 
+0

嗯,這似乎並沒有解決它,當我通過任務調度程序運行它時,它現在只是在循環中掛起,儘管通過常規宏運行它沒有問題 –

相關問題