我目前的表单中有一个字段,当单击该字段时,会在打开报告的事件过程中执行一些VBA代码:
DoCmd.OpenReport "GirlScoutandTroopMatchNoParams", acViewPreview, , "[TroopLeaders.Troop]=" & Me.Troop, acWindowNormal
我现在需要做的是自动生成电子邮件并将该报告附加到电子邮件中。
有办法做到这一点吗?
全新的Access开发,所以不要以为我知道任何事情:)
答案 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()