Solved

Can't get the Received Date on Outlook using VBA

Posted on 2009-04-06
1
3,956 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
1 Comment
 

Accepted Solution

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

Thanks!
0

Featured Post

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

This article will guide you to convert a grid from a picture into Excel format using Microsoft OneNote and no other 3rd party application.
My experience with Windows 10 over a one year period and suggestions for smooth operation
This video shows and describes the main difference between both orientations in Microsoft Word. Viewers will understand when to use each orientation and how to get the most out of them.
The viewer will learn how to use a discrete random variable to simulate the return on an investment over a period of years, create a Monte Carlo simulation using the discrete random variable, and create a graph to represent the possible returns over…

726 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