This is similar to the previous post except uses the inbuilt SendObject object to pass the string sBcc directly to Outlook. Outlook picks up the variables and so there is no need to set up public variables.
Private Sub CommandGroupEmail_Click()
On Error GoTo Err_CommandGroupEmail_Click
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Dim MyDB As DAO.Database
Dim rsEmail As DAO.Recordset
Dim sBcc As String
Dim sSubject As String
Dim sMessageBody As String
Set MyDB = OpenDatabase("\\SERVERNAME\DIRECTORYPATH\" & "TARGET.MDB")
Set rsEmail = MyDB.OpenRecordset("SELECT ... STATEMENT", dbOpenSnapshot)
With rsEmail
.MoveFirst
Do Until rsEmail.EOF
If IsNull(![E-mail]) = False Then
sBcc = sBcc & rsEmail![E-mail] & ";"
sSubject = ""
sMessageBody = ""
End If
.MoveNext
Loop
End With
DoCmd.SendObject , , , , , sBcc , sSubject, sMessageBody, True
Set MyDB = Nothing
Set rsEmail = Nothing
Exit_CommandGroupEmail_Click:
Exit Sub
Err_CommandGroupEmail_Click:
If (Err = 2467) Or (Err = 91) Or (Err = 2483) Then
Resume Next
End If
Resume Exit_CommandGroupEmail_Click
End Sub