生成报告然后通过电子邮件发送

时间:2014-05-01 01:56:19

标签: ms-access ms-access-2013

我目前的表单中有一个字段,当单击该字段时,会在打开报告的事件过程中执行一些VBA代码:

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

我现在需要做的是自动生成电子邮件并将该报告附加到电子邮件中。

有办法做到这一点吗?

全新的Access开发,所以不要以为我知道任何事情:)

1 个答案:

答案 0 :(得分: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", "johnbloggs@gmail.com"

您可以使用更多参数来包含主题和/或正文文本和/或表示是否在未在电子邮件客户端中显示的情况下发送电子邮件。

问题是SendObject没有提供指定条件的选项! 因此,您必须编写报告的基础查询,以便它可以从全局变量中获取条件。

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

然后在基础查询中使用:

SELECT ... WHERE Troop = GetTroopValue()