3 Stimmen

Wie kann man das Startdatum für eine INSTANZ einer wiederkehrenden Serie anzeigen?

Mithilfe von VBA muss ich das Startdatum jeder INSTANZ eines wiederkehrenden Termins in Outlook anzeigen.

Das Problem ist, dass, wenn ich appt.start verwende, das Startdatum der SERIE angezeigt wird, was nicht hilfreich ist!!!

Beispiel: Ein wiederkehrender Termin findet am Ersten eines jeden Monats im Jahr 2009 statt. Ich möchte 12 INSTANZEN mit 12 UNTERSCHIEDLICHEN Startdaten anzeigen (1.1.09, 2.1.09, usw.). Mit anderen Worten, alle 12 sollten NICHT das Startdatum = 1/1/09 anzeigen.

Danke

2voto

Andrew Brown Punkte 11

Eine Datumseinschränkung erfasst Instanzen eines wiederkehrenden Termins, die zwischen den angegebenen Daten auftreten, ABER wenn Sie die Eigenschaften der Instanz abfragen - zum Beispiel .IsRecurring o .AllDayEvent leitet Outlook den Zeiger auf den ersten wiederkehrenden Termin (sozusagen den übergeordneten) um. Um dies zu umgehen, müssen Sie das Start- und Enddatum prüfen (in lokale Variablen kopieren), bevor Sie sie durch Prüfung anderer Eigenschaften verlieren.

Dim olNS As Outlook.Namespace
Dim olRec As Outlook.Recipient

Dim myCalItems As Outlook.Items
Dim strRestriction As String

Dim ItemstoCheck As Outlook.Items
Dim MyItem As Outlook.AppointmentItem

Dim datAppStart As Date
Dim datAppEnd As Date

Set myCalItems = olNS.GetSharedDefaultFolder(olRec, olFolderCalendar).Items

' Including recurrent appointments requires sorting by the Start property, apparently!
myCalItems.Sort "[Start]", False
myCalItems.IncludeRecurrences = True

strRestriction = "[Start]<= " & Quote(datEndDate & " 12:00 AM") & " AND [End] >= " & _
    Quote(datStartDate & " 11:59 PM")
Set ItemstoCheck = myCalItems.Restrict(strRestriction)

For Each MyItem In ItemstoCheck
    If MyItem.Class = olAppointment Then        

'Save Start and end dates in case replaced by first instance of recurring appointment
datAppStart = MyItem.Start
datAppEnd = MyItem.End

usw.

0 Stimmen

Das war für mich der Knackpunkt: ' Including recurrent appointments requires sorting by the Start property, apparently! myCalItems.Sort "[Start]", False myCalItems.IncludeRecurrences = True

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X