VBA - Embed multiple files in Outlook body

Posted on 2010-09-08
Last Modified: 2012-06-21
I am using the following code in Access VBA to send messages. I already have code to
attach multiple files to the message according to the paths held in a ListBox.
What if I want to rather embed multiple images into the body of the messages?
What code would I use? Thanks
Sub SendEmail_Contacts()


    Dim olApp As Object, olMsg As Object

    Dim rs As DAO.Recordset


    Set olApp = CreateObject("Outlook.Application")

    Set rs = CurrentDb.OpenRecordset("NameOfTable")



    Do While Not rs.EOF

        If Nz(rs!EmailAddr, "") <> "" Then

            Set olMsg = olApp.CreateItem(0)

            With olMsg

                .To = rs!EmailAddr

                .Subject = rs!Subject

                .Body = rs!Body

                '-------------Embed multiple images (eg HTML) in body -----------




                '-------------add multiple attachments --------------------------

                        Dim j As Integer

                        For j = 0 To FileList.ListCount - 1

                            oMsg.Attachments.Add FileList.Column(0, j)

                        Next j




            End With

        End If




    Set olMsg = Nothing

    Set olApp = Nothing


    Set rs = Nothing


    MsgBox "Done"


End Sub

Open in new window

Question by:murbro

Expert Comment

Comment Utility
You'll have to attach the messages as usual and then manipulate the HTMLBody of the message.

Author Comment

Comment Utility
Hi. Thank you for that code but I still need to embed multiple images. How would one update the code you gave to embed three images

Author Comment

Comment Utility
Hi. Thank you for that code but I still need to embed multiple images. How would one update the code you gave to embed three images

Author Comment

Comment Utility
I found this article that seems to hint that CDO is not supported for my Outlook 2010
Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

LVL 47

Expert Comment

by:Dale Fye (Access MVP)
Comment Utility
Have you tried expanding this to include the Outlook and Automation zones.  You might be surprised to know that there are a number of experts in those zones that know their way around VBA but are not Access experts, and some who are Access Experts as well.
LVL 59

Accepted Solution

Kevin Cross earned 500 total points
Comment Utility
It doesn't appear to me that the article you are referencing regarding CDO is relevant here.  In your question you indicated that the code above is working as it stands and all you want to do is add HTML code to the body (i.e.,  tags).  Please try the code given -- see if this reference helps to clarify:

It is for Office 2003, though, but the HTMLBody should still be correct property of Outlook.MailItem.  To add multiple images, you would do the same you would do on any web page: have multiple img tags.


Hopefully you have already accounted for where the images fit within the body HTML coming from database, but other than that think you should be set.

Author Comment

Comment Utility
Hi mwvisa1, thank you, but I am still not clear on this. What code would I use email several html images in the body of an Outlook message for Outlook 2010, where CDO referencing doesn't work.

Author Closing Comment

Comment Utility
Thanks very much for the redirection. Great help.
LVL 59

Expert Comment

by:Kevin Cross
Comment Utility
Sorry I missed your earlier message ... was actually sleeping for a change.
However, I see that you have figured out what I was saying.

Glad it helped.

Best regards and happy coding,


P.S. If you meant to assign some points to tabish also, please feel free to contact a Moderator as you will have no objections from me as I was trying to help drive home or clarify the point by assisting.

Featured Post

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

Use email signature images to promote corporate certifications and industry awards.
Following basic email etiquette rules will help you write a professional email and achieve a good, lasting impression with your contacts.
In Microsoft Access, learn how to “cascade” or have the displayed data of one combo control depend upon what’s entered in another. Base the dependent combo on a query for its row source: Add a reference to the first combo on the form as criteria i…
This Experts Exchange video Micro Tutorial shows how to tell Microsoft Office that a word is NOT spelled correctly. Microsoft Office has a built-in, main dictionary that is shared by Office apps, including Excel, Outlook, PowerPoint, and Word. When …

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now