我有一个 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 文件附件的新电子邮件,但我得到的是一份空白报告。
除了检查 Tim 上面提到的内容之外,您是否验证过记录集中的 DSMemail 或 DSMkey 不存在空值或空白?
这部分确实很容易被忽视,但是对于循环来说它很关键。
马克