This works for me.
Code:
Public Sub ImportEmails()
' Set up Outlook objects.
Dim ol As New Outlook.Application
Dim of As Outlook.MAPIFolder
Dim objItems As Outlook.Items
Dim mo As Outlook.MailItem, Atmt As Outlook.Attachment
'Set of = ol.GetNamespace("Mapi").GetDefaultFolder(olFolderInbox).Folders("Repairs")
Set of = ol.GetNamespace("Mapi").GetDefaultFolder(olFolderInbox)
Set objItems = of.Items
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("tblEmails")
For Each mo In objItems
rst.AddNew
rst!Sender = mo.SenderEmailAddress
rst!SenderName = mo.Sender
rst!Subject = mo.Subject
rst!body = mo.body
rst!Received = mo.ReceivedTime
rst.Update
'For Each Atmt In mo.Attachments
' Atmt.SaveAsFile "C:\Users\June\Forums\" & Atmt.FileName
'Next
Next
End Sub
Or for only selected emails in Outlook.
Code:
Sub GetEmailBody()
Dim objOL As Outlook.Application
Dim objMsg As Outlook.MailItem 'Object
Dim objSelection As Outlook.Selection
Dim strFolderPath As String
' Get the path to your My Documents folder
strFolderPath = CreateObject("WScript.Shell").SpecialFolders(16)
On Error Resume Next
' Instantiate an Outlook Application object.
Set objOL = CreateObject("Outlook.Application")
' Get the collection of selected objects.
Set objSelection = objOL.ActiveExplorer.Selection
For Each objMsg In objSelection
Debug.Print objMsg.body
Next
End Sub
And look at this one. Should be able to include WHERE clause in the SQL.
Code:
Sub InboxImport()
Dim SqlString As String
Dim ConnectionString As String
Dim EmailTableName As String
Dim UserIdNum As String
Dim EmailAddr As String
Dim ol As Outlook.Application
Dim olNS As Outlook.NameSpace
Dim olFol As Outlook.folder
'Dim rs As DAO.Recordset Set ol = CreateObject("Outlook.Application")
Set olNS = ol.GetNamespace("MAPI")
Set olFol = olNS.GetDefaultFolder(olFolderInbox)
EmailTableName = "MyInbox"
UserIdNum = Environ("USERNAME") '1277523A...
EmailAddr = olFol.Parent.Name 'Gives your user email address
ConnectionString = "Outlook 9.0;MAPILEVEL=" & EmailAddr & "|;PROFILE=Default Outlook Profile;TABLETYPE=0;TABLENAME=MyInbox;COLSETVERSION=12.0;DATABASE=C:\Users\" & UserIdNum & "\AppData\Local\Temp\"
'SqlString = "SELECT [From] As [Sender], [Sender Name] As [SenderName], [Subject Prefix] & [Normalized Subject] As Subject, [Contents] As [Body], [Received] As [ReceivedTime]" & _
" INTO [MyInbox]" & _
" From [" & ConnectionString & "].[Inbox]"
SqlString = "INSERT INTO MyInbox SELECT [From] As [Sender], [Sender Name] As [SenderName], [Subject Prefix] & [Normalized Subject] As Subject, [Contents] As [Body], [Received] As [ReceivedTime]" & _
" FROM [" & ConnectionString & "].[Inbox]"
'CurrentDb.Execute SqlString
Debug.Print SqlString
End Sub