【发布时间】: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