' Uncomment (Remove the ' ) the two lines of code below if they are not already at the top of your Module
'Option Compare Database
'Option Explicit



Function Email(strTo As String, strSubject As String, _
                        Optional varMsg As Variant, _
                        Optional varAttachment As Variant)

' ŠArvin Meyer 1999-2004
' Permission to use is granted if copyright notice is left intact.
' Permisssion is denied for use with unsolicited commercial email

'Set reference to Outlook
    On Error GoTo ErrHandler
    Dim strBCC As String
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim objOutl As Outlook.Application
    'Dim objEml As Outlook.MailItem
    Dim i As Integer

    Set db = CurrentDb
    Set rst = db.OpenRecordset("qryContacts", dbOpenSnapshot)

    Set objOutl = CreateObject("Outlook.application")
    'Set objEml = objOutl.createItem(olMailitem)

    With rst
        If .RecordCount > 0 Then
            .MoveLast
            .MoveFirst
        End If
    End With

    For i = 1 To rst.RecordCount
        If Len(rst!EmailAddress) > 0 Then
            strTo = rst!EmailAddress
            Dim objEml As Outlook.MailItem
            Set objEml = objOutl.CreateItem(olMailItem)

            With objEml
                .To = strTo

                .Subject = strSubject

                If Not IsNull(varMsg) Then
                    .Body = varMsg
                End If

                ' Uncomment for attachment
                '            If Not IsMissing(varAttachment) Then
                '                .Attachments.Add varAttachment
                '            End If

                .Send
            End With
        End If
        Set objEml = Nothing
        rst.MoveNext
    Next i

ExitHere:
    On Error Resume Next
    Set objOutl = Nothing
    Set rst = Nothing
    Set db = Nothing
    Exit Function

ErrHandler:
    MsgBox Err.Number & ": " & Err.Description
    Resume ExitHere

End Function



Function Email2(strgTo As String, strgSubject As String, _
                Optional varMesg As VariantOptional varAttach As Variant)
'Arvin Meyer 03/12/1999  Modified by Pat Wood
'Updated 7/21/2001
    On Error GoTo Error_Handler

    Dim objOutlook As Outlook.Application
    Dim objEmail As Outlook.MailItem

    Set objOutlook = CreateObject("Outlook.application")
    Set objEmail = objOutlook.CreateItem(olMailItem)

    With objEmail
        .To = strgTo
        .Subject = strgSubject
        .Body = varMesg
        .Attachments.Add "C:\Test.htm"
        '.attachments.Add varAttach  ' varAttach Example: "c:\Path\to\the\next\file.txt"
        .Send
        '.ReadReceiptRequested
    End With

Exit_Here:
    On Error Resume Next
    Set objOutlook = Nothing
    Exit Function

Error_Handler:
    MsgBox Err.Number & ": " & Err.Description
    Resume Exit_Here

End Function