2017-07-04 4 views
0

J'essaie de lire les messages reçus uniquement aujourd'hui. Ci-dessous est le code où je suis en train de restreindre mais en lançant une condition non valide erreur. La même chose fonctionne très bien quand j'ai donné une condition comme unread = True.Définir des restrictions par ReceivedTime sur la liste de diffusion

Set myItems = myItems.Restrict("DateValue[ReceivedTime]='" & Format(DateValue(Now),"ddddd h:nn AMPM") & "'") 

Aidez-moi à m'en procurer.

Répondre

0

Je vois au moins deux problèmes.

  1. Vous avez "DateValue [ReceivedTime]" plutôt que "[ReceivedTime]".
  2. Vous restreignez les e-mails à ceux reçus à minuit aujourd'hui plutôt qu'à ceux reçus après minuit.

Essayez ce code:

Sub RestrictByDate() 

    Dim FmtToday As String 
    Dim FldrInbox As Folder 
    Dim MailItemsToday As Items 
    Dim MailItemCrnt As MailItem 

    FmtToday = Format(DateValue(Now()), "ddddd h:nn AMPM") 

    ' #### Replace "xxxx" with the name of the store containing the target Inbox 
    Set FldrInbox = Session.Folders("xxxx").Folders("Inbox") 

    Set MailItemsToday = FldrInbox.Items.Restrict("[ReceivedTime] > '" & FmtToday & "'") 

    Debug.Print "Number of emails received today=" & MailItemsToday.Count 
    For Each MailItemCrnt In MailItemsToday 
    With MailItemCrnt 
     Debug.Print .ReceivedTime & " " & .Subject 
    End With 
    Next 

End Sub 
+0

Merci pour la réponse Tony. Cela a vraiment aidé 'Dim FmtToday As String FmtToday = Format (DateValue (Maintenant()), "ddddd h: nn AMPM") Définir MailItemsToday = FldrInbox.Items.Restrict ("[ReceivedTime]>'" & FmtToday & " '")'. J'ai changé mon code avec ça et ça a marché. –