Vba MS Access-记录集-在表格中循环并发送电子邮件-获取“;运行时错误440:数组索引超出范围

Vba MS Access-记录集-在表格中循环并发送电子邮件-获取“;运行时错误440:数组索引超出范围,vba,database,ms-access,dao,ms-access-forms,Vba,Database,Ms Access,Dao,Ms Access Forms,我有一个表单,其中有一个我希望我的代码循环通过并发送个人电子邮件的人员列表。我以前做过,但不知怎么的,我忽略了一些事情。我在表格中使用的主要变量是姓名(我发送电子邮件的人的姓名)和电子邮件(电子邮件地址)。我不确定为什么会出现数组索引越界错误,但希望这是一个简单的修复方法。感谢您的帮助 Set OutApp = CreateObject("Outlook.Application") Dim rs As DAO.Recordset Set rs = CurrentDb.O

我有一个表单,其中有一个我希望我的代码循环通过并发送个人电子邮件的人员列表。我以前做过,但不知怎么的,我忽略了一些事情。我在表格中使用的主要变量是姓名(我发送电子邮件的人的姓名)和电子邮件(电子邮件地址)。我不确定为什么会出现数组索引越界错误,但希望这是一个简单的修复方法。感谢您的帮助


Set OutApp = CreateObject("Outlook.Application")

Dim rs As DAO.Recordset

Set rs = CurrentDb.OpenRecordset("My_Table")

With rs

    If .EOF And .BOF Then

        MsgBox "No emails will be sent becuase there are no records assigned from the list", vbInformation

    Else

        Do Until .EOF

            stremail = Me![Email] 'This is the list of people's email addresses I want to email

            strsubject = "the subject - placeholder for now"

            strbody = "Dear " & Me![Name] & "Hello and goodbye."

 

            Set OutMail = OutApp.CreateItem(olMailItem)

            With OutMail

                .To = stremail

                .CC = ""

                .BCC = ""

                .Subject = strsubject

                .Body = strbody

 

                .SendUsingAccount = OutApp.Session.Accounts.Item(2)

                .Send

            End With

            .MoveNext

        Loop

    End If

End With

End Sub

哪一行触发错误?是第(2)项吗?有多少帐户?这能回答你的问题吗。SendUsingAccount=OutApp.Session.Accounts.Item(2)触发错误。我可以用一封电子邮件来处理这个问题,但不能用循环来处理……你在我的其他评论中看过链接的答案了吗?尝试在循环之外设置帐户。我看了看,试了试,但我没有运气。也许我错过了什么。你能说出你的意思吗?提前谢谢。