首页 > 解决方案 > 通过电子邮件向每个帐户发送他们自己的 pdf 报告会出现运行时错误 3265

问题描述

请参阅下面的代码,该代码由于以下行而返回运行时错误 3265:strTo = !email_address1

但是,如果我将其更改为 strTo = !AccountNumber 它将正确填充到 Outlook 电子邮件收件人:行中,但我需要电子邮件地址,而不是帐号 - 我需要定义 email_address1 吗?它是我的查询/报告中的一个简短文本字段。如果是这样,我该如何定义它?全新访问。

Option Compare Database

Sub Mac1()
    Dim rsAccountNumber As DAO.Recordset
    Dim strTo As Variant
    Dim strSubject As String
    Dim strMessageText As String

    Set rsAccountNumber = CurrentDb.OpenRecordset("SELECT DISTINCT AccountNumber, email_address1 FROM [P3_DVP_UnAffirmed_Report_for_En Query]", dbOpenSnapshot)

    With rsAccountNumber

        Do Until .EOF

        DoCmd.OpenReport "Unaffirmed Report", _
            acViewPreview, _
            WhereCondition:="AccountNumber = '" & !AccountNumber & "'", _
            WindowMode:=acHidden

        strTo = !Email_Address1
        strSubject = "Invoice Number "
        strMessageText = "Text Here"


        DoCmd.SendObject ObjectType:=acSendReport, _
            ObjectName:="Unaffirmed Report", _
            OutputFormat:=acFormatPDF, _
            To:=strTo, _
            Subject:=strSubject, _
            MESSAGETEXT:=strMessageText, _
            EditMessage:=True


    DoCmd.Close acReport, "Unaffirmed Report", acSaveNo


    .MoveNext

Loop

.Close

End With
End Sub

标签: vbaloopsemailms-accessrecordset

解决方案


在您的SELECT列表中,您应该指定email_address1 字段,以便:

     Set rsAccountNumber = CurrentDb.OpenRecordset("SELECT DISTINCT AccountNumber, email_address1 FROM [P3_DVP_UnAffirmed_Report_for_En Query]",dbOpenSnapShot)

推荐阅读