2014-05-01 124 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

相关问题