2014-05-01 123 views
0

目前,我有我的形式,有一個場,單擊時,執行的事件過程的一些VBA代碼,打開一個報告:生成報告,然後通過電子郵件發送它

DoCmd.OpenReport "GirlScoutandTroopMatchNoParams", acViewPreview, , "[TroopLeaders.Troop]=" & Me.Troop, acWindowNormal 

我現在需要做什麼會自動生成一封電子郵件並將該報告附加到電子郵件中。

有沒有辦法做到這一點?

全新的訪問發展,所以不要以爲我知道什麼:)

回答

0

下面的代碼將報告轉換爲PDF格式,並使用默認的電子郵件客戶端,將其附加到新的電子郵件:

gTroop = Me.Troop 'global variable to be defined in global module and accessed from the query using a function 
DoCmd.OpenReport "GirlScoutandTroopMatchNoParams", acViewPreview, , "TroopLeaders.Troop=" & Me.Troop 
DoCmd.SendObject acSendReport, "<NameOfReport>", "PDF", "[email protected]" 

您可以使用一些更多的參數來包含主題和/或正文文本和/或表示電子郵件是否發送,而不顯示在電子郵件客戶端中。

問題是SendObject沒有提供指定標準的選項! 因此,您必須編寫報表的基礎查詢,以便可以從全局變量中獲取標準。

Public Function GetTroopValue() as long 
    GetTroopValue = gTroop 
End Function 

然後在基礎查詢,您將使用:

SELECT ... WHERE Troop = GetTroopValue() 
+0

感謝這個答案,但如果我需要使用WHERE子句首先創建報告,然後通過電子郵件發送。再次,我可能會錯過一些非常簡單的事情。 – user3591427

+0

請顯示您用於生成報告的代碼 –

+0

DoCmd.OpenReport「GirlScoutandTroopMatchNoParams」,acViewPreview,「[TroopLeaders.Troop] =」&Me.Troop,acWindowNormal。我想要的是將它與您提供的代碼行相結合,我相信這樣我就可以使用表單中的字段獲取我創建的報告,然後使用表單 – user3591427

相關問題