Solved

Can't get the Received Date on Outlook using VBA

Posted on 2009-04-06
1
3,916 Views
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
                    .AddNew
                    !Importance = objItem.Importance
                    !Subject = objItem.Subject
                    !from = objItem.SenderName
                    !To = objItem.To
                   ' ![Normalized Subject] = objItem.[Normalized Subject]
                    !Received = objItem.Received
                    .Update
                End With
            End If
        Next
 
        For Each objFolder In StartFolder.Folders
            Call ProcessFolder(objFolder)
        Next
End Sub

Open in new window

0
Comment
Question by:meredithf
1 Comment
 

Accepted Solution

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

Thanks!
0

Featured Post

Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Article by: Leon
Software Metering within our group of companies has always been an afterthought until auditing of software and licensing became a pain point. Orchestrator and SCCM metering gave us the answer and it was an exciting process.
This article will guide you to convert a grid from a picture into Excel format using Microsoft OneNote and no other 3rd party application.
The viewer will learn how to make their project stand out over others by learning how to change colors and shapes, add spaces, change directions, and add bullets to their charts.
Learn how to make your own table of contents in Microsoft Word using paragraph styles and the automatic table of contents tool. We'll be using the paragraph styles in Word’s Home toolbar to help you create a table of contents. Type out your initial …

789 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