循环访问表并为每个销售人员发送包含相关数据的电子邮件

问题描述 投票:0回答:1

我有一个 Access DB 表,其中包含 28 行销售人员及其各自的电子邮件和销售数据。 我需要循环遍历该表并为每个销售人员创建一个 Excel 文件,然后发送一封包含其各自 Excel 文件的电子邮件。我借用了以下代码,但没有得到想要的结果。 任何意见将不胜感激。

Public Sub SendRptDSM()

    Dim strSQL As String
    Dim rs As DAO.Recordset

    strSQL = "SELECT * FROM DropShipReportDSM"
    Set rs = CurrentDb.OpenRecordset(strSQL)

    If Not rs.BOF And Not rs.EOF Then
        rs.MoveFirst
        Do While Not rs.EOF
            DoCmd.OpenReport "DropShipReportDSM", acViewPreview, , "DSMKey = " & rs!DSMKey
            DoCmd.SendObject acSendReport, "DropShipReportDSM", acFormatXLSX, rs![DSMEmail], , , "subject text here", "message text here", True
            DoCmd.Close acReport, "reportname", acSaveNo
            rs.MoveNext
        Loop
    End If
    rs.Close
    Set rs = Nothing
End Sub

当我执行代码时,我希望每个销售人员都会收到一封带有 Excel 文件附件的新电子邮件,但我得到的是一份空白报告。

vba loops ms-access recordset
1个回答
0
投票

除了检查 Tim 上面提到的内容之外,您是否验证过记录集中的 DSMemail 或 DSMkey 不存在空值或空白?

这部分确实很容易被忽视,但是对于循环来说它很关键。

马克

© www.soinside.com 2019 - 2024. All rights reserved.