【问题标题】:Email each account their own pdf report gets run time error 3265通过电子邮件向每个帐户发送他们自己的 pdf 报告会出现运行时错误 3265
【发布时间】:2019-02-05 08:59:40
【问题描述】:

请参阅下面的代码,该代码由于以下行而返回运行时错误 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

【问题讨论】:

  • 查询选择中缺少字段email_address1。您只需获取AccountNumber。因此,将缺少的字段添加到查询中。如果它不是不同的,则加入基本查询。
  • Queryname 似乎错误,包含空格。如果是这样,请用方括号括起来!
  • 查询名称有效 - 我的查询中有该字段,我还需要加入吗?
  • 啊,你添加了一个换行符。请使用_,以便其他人可以复制和粘贴您的代码。仅当 AccountNumber 与 2. 字段不同时才需要加入。

标签: vba loops email ms-access recordset


【解决方案1】:

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

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

【讨论】:

  • ive 已更改为以下内容,但我现在收到运行时错误 3016:参数太少。预期 1. 设置 rsAccountNumber = CurrentDb.OpenRecordset(_"SELECT DISTINCT AccountNumber,Email_Address1 FROM P3_DVP_UnAffirmed_Report_for_En 查询")
  • 如何添加 dbOpenSnapShot?
  • 您不必添加 dbOpenSnapShot,但如果您愿意,我编辑了我的答案。坚持你原来的有效语法
  • 仍然得到 - 接收运行时错误 3016:参数太少。预期 1 - 我需要为 email_address1 使用 DIM 吗?似乎我使用的任何字段:AccountNumber, Field 只是返回相同的错误消息
  • 不,这是从您的查询返回的字段。为了让 VBA 换行,我们使用空白和 _ 所以我再次编辑了我的分析器
猜你喜欢
  • 2019-02-03
  • 1970-01-01
  • 1970-01-01
  • 2016-06-11
  • 1970-01-01
  • 2020-01-12
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多