[英]Access VBA code: Save and Email output individually using outlook
Been trying build a VBA code that automatically save and send the output to each Email_ID.一直在尝试构建一个 VBA 代码,自动保存并将输出发送到每个 Email_ID。 Just started learning vba code in access.
刚开始在access中学习vba代码。
I'm facing an error in DoCmd.SendObject part, "Item not found in this collection".我在 DoCmd.SendObject 部分遇到错误,“在此集合中找不到项目”。
I would really appreciate if anyone can help me solve this error.如果有人能帮我解决这个错误,我将不胜感激。
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")
This cannot work.这是行不通的。 Your recordset only contains the field
Code1
, so Email_ID
will be "not found in this collection".您的记录集仅包含字段
Code1
,因此Email_ID
将“在此集合中找不到”。
You must have it in the SELECT clause.您必须在 SELECT 子句中使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.