Maybe add a filter to your query?
You didn't say what the check box field name was, so I used "Selected". Change "Selected" to your actual field name.
And I modified your code a little.....
Code:
Private Sub cmdEmailSelected_Click()
Dim rs As DAO.Recordset
Dim vRecipientList As String
Dim vMsg As String
Dim vSubject As String
Dim stDocName As String
If Me.Dirty Then
Me.Dirty = False
End If
Set rs = CurrentDb.OpenRecordset("SELECT * FROM EmailsListQry WHERE Selected = TRUE")
If rs.BOF And rs.EOF Then '<<== I changed this also.
MsgBox "No contacts."
Else
rs.MoveFirst
Do
If Not IsNull(rs![Email1]) Then
vRecipientList = vRecipientList & rs![Email1] & ";"
rs.MoveNext
Else
rs.MoveNext
End If
Loop Until rs.EOF
vMsg = " Your Message here... "
vSubject = " Your Subject here... "
stDocName = "Empty_Report"
' DoCmd.SendObject acSendNoObject,
DoCmd.SendObject acSendNoObject, stDocName, acFormatXLS, vRecipientList, , , vSubject, vMsg, True
MsgBox "EMail sent successfully!"
End If
rs.Close
Set rs = Nothing
End Sub