访问VBA代码:使用outlook分别保存和发送电子邮件输出

访问VBA代码:使用outlook分别保存和发送电子邮件输出,vba,ms-access,outlook,Vba,Ms Access,Outlook,一直在尝试构建一个VBA代码,自动保存并将输出发送到每个电子邮件ID。刚刚开始在access中学习VBA代码 我在DoCmd.SendObject部分遇到错误,“在此集合中找不到项” 如果有人能帮我解决这个错误,我将不胜感激 Private Sub Command_PDF_Click() Dim myrs As Recordset Dim myPDF, myStmt As String Dim oApp As New Outlook.Application, oEmai

一直在尝试构建一个VBA代码,自动保存并将输出发送到每个电子邮件ID。刚刚开始在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
这是行不通的。您的记录集仅包含字段
Code1
,因此
Email\u ID
将“在此集合中找不到”

必须在SELECT子句中包含它

myStmt = "Select distinct Code1 from Query_Certificate_Eng"
Set myrs = CurrentDb.OpenRecordset(myStmt)
...
..., To:=myrs.Fields("Email_ID")