Can't get the Received Date on Outlook using VBA

Posted on 2009-04-06
Last Modified: 2012-05-06
I'm trying to retrieve all the emails from a specific folder from my MS Outlook including those in its subfolders.  Using the code below, I can get the Subject, To, Body, Importance but not the Received.  It just shows blank.  When I try to get the value using the immediate window, it says " Run-time error 438:  Object doesn't support this property or method."  I need to get the Received date so I can filter the date the emails were received.

I will appreciate any help!
Private Sub cmdRefresh_click()   

    Dim olApp As Outlook.Application

    Dim olNs As Outlook.NameSpace

    Dim strFolderPath As String    

    DoCmd.SetWarnings (False)

    DoCmd.RunSQL "Delete * from LastWeek"

    DoCmd.SetWarnings (True)           

    Dim RS As New ADODB.Recordset

    RS.Open "Emails", CurrentProject.Connection, adOpenDynamic, adLockOptimistic

    Set olApp = New Outlook.Application

    Set olNs = olApp.GetNamespace("MAPI")    

    Dim olFldr As Outlook.MAPIFolder     

    Set olFldr = olNs.GetDefaultFolder(olPublicFoldersAllPublicFolders).Folders("Transactions")    

    Call ProcessFolder(olFldr)

End Sub

Sub ProcessFolder(StartFolder As MAPIFolder)

    Dim objFolder As Outlook.MAPIFolder

    Dim objItem As Object

    Dim objEmail As MailItem

    Dim mailObject As Object

    Dim dtReceived As Date

    Dim strSubject As String

        On Error Resume Next

    Set objApp1 = Outlook.Application

    Set objNS1 = objApp1.GetNamespace("MAPI")

    Dim RS As New ADODB.Recordset

    RS.Open "LastWeek", CurrentProject.Connection, adOpenDynamic, adLockOptimistic


    For Each objItem In StartFolder.Items '.Folders           

            strSubject = objItem.Subject

            dtReceived = CDate(objItem.Received)

            If (InStr(1, strSubject, "Clothes;") > 0) Or _

                (InStr(1, strSubject, "Shoes") > 0) Then                            

                With RS


                    !Importance = objItem.Importance

                    !Subject = objItem.Subject

                    !from = objItem.SenderName

                    !To = objItem.To

                   ' ![Normalized Subject] = objItem.[Normalized Subject]

                    !Received = objItem.Received


                End With

            End If


        For Each objFolder In StartFolder.Folders

            Call ProcessFolder(objFolder)


End Sub

Open in new window

Question by:meredithf
1 Comment

Accepted Solution

meredithf earned 0 total points
ID: 24076687
I got it!  Should be objItem.ReceivedTime.


Featured Post

Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

Join & Write a Comment

Deploying a Microsoft Access application in a Citrix environment is not difficult but takes a few steps. However, Citrix system people are often of little help, as they typically know next to nothing about Access. The script provided here will take …
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
This video walks the viewer through the process of creating Hyperlinks for the web and other documents. Select the "Insert" tab: Click "Hyperlink":  Type "http://" followed by a web address to reference a website or navigate to a document to ref…
This video shows where to find templates, what they are used for, and how to create and save a custom template using Microsoft Word.

758 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

20 Experts available now in Live!

Get 1:1 Help Now