如何添加第二个可选对象以在Access VBA中打开Outlook?

如何添加第二个可选对象以在Access VBA中打开Outlook?,vba,class,object,ms-access,set,Vba,Class,Object,Ms Access,Set,到目前为止,我有第一次推荐打开Outlook,并通过自动定制的邮件检索正确的电子邮件地址。现在,我正在尝试添加第二个引用,reference\u to\u ID\u 2作为可选项,这意味着如果未选中,则不会引发错误。下面是到目前为止我所拥有的表单和代码,但我不太确定我是否通过为第二个对象指定一个引用来正确操作,reference\u to\u ID\u 2以及if语句。现在,如果我没有在reference\u To\u ID\u 2中选择任何内容,它实际上会给我一个错误。有人能告诉我添加第二个对

到目前为止,我有第一次推荐打开Outlook,并通过自动定制的邮件检索正确的电子邮件地址。现在,我正在尝试添加第二个引用,
reference\u to\u ID\u 2
作为可选项,这意味着如果未选中,则不会引发错误。下面是到目前为止我所拥有的表单和代码,但我不太确定我是否通过为第二个对象指定一个引用来正确操作,
reference\u to\u ID\u 2
以及
if
语句。现在,如果我没有在
reference\u To\u ID\u 2
中选择任何内容,它实际上会给我一个错误。有人能告诉我添加第二个对象作为可选对象的最佳方法吗?非常感谢

Private Sub cmdReferralEmail_Click()

Dim emailAddresses As Collection, newEmail As Email
Dim emailAddresses2 As Collection, newEmail2 As Email

Set emailAddresses = GetEmails(referralId:=Referral_To_ID)
Set emailAddresses2 = GetEmails(referralId:=Referral_To_ID_2)

If emailAddresses Is Nothing Then 'User cancelled
ElseIf emailAddresses2 Is Nothing Then 'User cancelled
    GoTo ExitHandler
ElseIf emailAddresses.count = 0 Then
    MsgBox "No email addresses were selected for this client.", vbExclamation
Else
    Set newEmail = New Email
    Set newEmail2 = New Email
    With newEmail
        .HtmlBody = _
            "<p>We referred a potential client to you, " & _
            Nz(First_Name & " ", "") & Nz(Last_Name, "") & _
            ", who needs help with an employment matter in " & Nz(State, "your state") & _
            ".  Thank you for any assistance you might be able to provide.</p>"
        Set .MailTo = emailAddresses
        Set .MailTo = emailAddresses2
        .Cc.Add "kjghkjgh@ihiu.com"
        .Subject = "Potential"
        .Send
    End With
End If End Sub

Private Sub-cmdrefereralemail\u Click()
Dim EmailAddresss作为集合,newEmail作为电子邮件
Dim EmailAddresses 2作为集合,newEmail2作为电子邮件
设置emailAddresses=GetEmails(referralId:=Referral\u To\u ID)
设置emailAddresses2=GetEmails(referralId:=Referral\u To\u ID\u 2)
如果emailAddresses为空,则“用户已取消”
如果emailAddresses2为空,则“用户已取消”
去出口
ElseIf emailAddresses.count=0,则
MsgBox“未为此客户端选择任何电子邮件地址”,请使用感叹号
其他的
设置新电子邮件=新电子邮件
Set newEmail2=新电子邮件
用新邮件
.HtmlBody=_
“我们向您推荐了一位潜在客户,”_
新西兰(名和名)和新西兰(姓和名)_
“,谁需要在就业问题上的帮助”&Nz(州,“你的州”)&_
“。感谢您提供的任何帮助。

” Set.MailTo=电子邮件地址 Set.MailTo=emailAddresses2 .Cc.Add“kjghkjgh@ihiu.com" .Subject=“潜力” .发送 以 如果结束子节点,则结束
我的程序读取一个人员列表,例如,如果他们被标记为进行维护,它会提取一个查询,并使用以下命令为该查询设置一个记录集:

strSQL = "SELECT Email FROM Employees WHERE '" & department & "' = Department"
Debug.Print strSQL 'I do this so I can see what my query is in the immediate window
Set myR = CurrentDb.OpenRecordset(strSQL)
然后,在创建记录集后,我循环遍历与查询中的条件匹配的每个记录,并将添加到电子邮件的
olTo

Do While Not myR.EOF
    Debug.Print myR!Email 'print the email of the record I'm on
    Set appOutlookRec = .Recipients.Add(myR!Email)
    appOutlookRec.Type = olTo
    myR.MoveNext
Loop
但为了更具体地回答您的问题,我将添加两个
IF
语句,首先检查
reference\u to\u ID\u 2
是否为空

If Referral_To_ID_2 = Null Then 'or if its a string then If Len(Me.Notes & vbNullString) = 0
    'do nothing
Else
    Set emailAddresses2 = GetEmails(referralId:=Referral_To_ID_2)
End if
然后把第二个if放在你设置.MailTo的地方

If emailAddresses2 = Nothing then 'I think that's how that would go, not 100%
    'do nothing
Else
     Set .MailTo = emailAddresses2
End if

不,请知道我不是大师。我试着把这些和我学到的知识拼凑在一起,所以如果有人读到了这些,可以更好地修改它,那么就去做吧。让我知道它是如何运行的。

因为我需要它来打开两个单独的Outlook窗口,所以我必须基本上复制并粘贴我在第一次引用中为第二次引用所用的代码,在未选中时为第二次引用未显示错误所用的代码,下面是我的想法,它正在工作:

如果为空(引用到\u ID\u 2),则
出错时继续下一步
其他的
设置emailAddresses2=GetEmails(referralId:=Referral\u To\u ID\u 2)
如果结束

谢谢大家的意见

可能是因为您试图
设置.MailTo=emailAddresses2
,而实际上没有电子邮件?错误消息是什么?其次,在顶部,当您
设置emailAddresses2=…
时,您不应该在末尾使用
ID\u 2
?为什么不能使用
IF
语句来表示
IF-reflection 2不为空,然后将你的电子邮件地址连接起来,这样你就只能添加一个大的?我就是这么定的。循环并连接直到
EOF
@TKEyi60是的,你是对的!我忘了仔细查看我的代码,添加了您提到的代码。错误消息将设置emailAddresses2=GetEmails(referralId:=Referral_to_ID_2),告知没有用户输入。我也喜欢你关于连接电子邮件的建议,我认为这是最重要的部分。你能再暗示一下吗?也许是编码语法?我是VBA的新手。非常感谢!我想道歉,因为我不知道如何连接多个电子邮件地址。我回顾了我编写的旧代码,我将在下面发布。看看这是否有帮助。再次抱歉,谢谢!我试试这个,让你知道!你的输入肯定对我有帮助,所以我的方法是:
如果IsNull(reference\u To\u ID\u 2),那么在错误恢复下一步,设置emailAddresses2=GetEmails(refereralid:=reference\u To\u ID\u 2)如果