vba - 访问 VBA 代码:使用 Outlook 单独保存和电子邮件输出
问题描述
一直在尝试构建一个自动保存并将输出发送到每个 Email_ID 的 VBA 代码。刚开始在access中学习vba代码。
我在 DoCmd.SendObject 部分中遇到错误,“在此集合中找不到项目”。
如果有人可以帮助我解决此错误,我将不胜感激。
Private Sub Command_PDF_Click()
Dim myrs As Recordset
Dim myPDF, myStmt As String
Dim oApp As New Outlook.Application, oEmail As Outlook.MailItem
myStmt = "Select distinct Code1 from Query_Certificate_Eng"
Set myrs = CurrentDb.OpenRecordset(myStmt)
Do Until myrs.EOF
myPDF = "C:\Users\93167\Desktop\Output Certificate\" & Format(myrs.Fields("Code1"), "0000000000000") & ".pdf"
DoCmd.OpenReport "Certificate_Eng", acViewPreview, , "Code1 = '" & myrs!Code1 & "'"
DoCmd.OutputTo objectType:=acOutputReport, objectName:="Certificate_Eng", outputformat:=acFormatPDF, outputfile:=myPDF, outputquality:=acExportQualityPrint
DoCmd.SendObject objectType:=acSendReport, objectName:="Certificate_Eng", outputformat:=acFormatPDF, To:=myrs.Fields("Email_ID"), Subject:="Test", MessageText:="Test Message"
DoCmd.Close
myrs.MoveNext
Loop
myrs.Close
Set myrs = Nothing
End Sub
解决方案
myStmt = "Select distinct Code1 from Query_Certificate_Eng"
Set myrs = CurrentDb.OpenRecordset(myStmt)
...
..., To:=myrs.Fields("Email_ID")
这行不通。您的记录集仅包含字段Code1
,因此Email_ID
将“在此集合中找不到”。
您必须在 SELECT 子句中包含它。
推荐阅读
- ios - Getting text in scrollview to start at the top, not the bottom (Objective-C)
- php - 如何让我的 Angular 前端与 PHP 后端通信?
- c++ - How does std::atomic ensure atomicity
- python-3.x - 如何在python中使用pickle序列化套接字对象
- python - 在没有重置参数的情况下在 tensorflow 后端加载 keras 模型
- java - GridWorld 中的 NullPointerException
- python - 尝试查找不再在列表中的事物的索引而导致的错误
- vuex - 如何将参数从 Nuxt 组件传递给 Vuex 操作
- angular - Angular - 仅打印 ag-Grid 数据
- omnet++ - 使用 VeinsInetMobility 和 TraCIMobility