Remove Exceptions from a Series

浪子不回头ぞ 提交于 2021-02-19 02:39:12

问题


I have a series in Outlook with a few exceptions. What I would like to do is remove all exceptions from this series. Does anyone know if there is a way to do this? Since the exceptions list is read-only I have tried clearing the recurrence pattern and re-applying all of the values sans the exceptions list like this:

Dim tRType As OlRecurrenceType
Dim tRPSD As Date
Dim tRPED As Date
Dim tST As Date
Dim tET As Date
Dim tOcc As Integer
Dim tInterval As Integer

tRType = oAppointmentItem.GetRecurrencePattern.RecurrenceType
tRPSD = oAppointmentItem.GetRecurrencePattern.PatternStartDate
tRPED = oAppointmentItem.GetRecurrencePattern.PatternEndDate
tST = oAppointmentItem.GetRecurrencePattern.startTime
tET = oAppointmentItem.GetRecurrencePattern.endTime
tOcc = oAppointmentItem.GetRecurrencePattern.Occurrences
tInterval = oAppointmentItem.GetRecurrencePattern.Interval

oAppointmentItem.ClearRecurrencePattern
' This save throws an error. 
'oAppointmentItem.Save

' Make this call to flip to reccurring...
oAppointmentItem.GetRecurrencePattern
oAppointmentItem.GetRecurrencePattern.RecurrenceType = tRType
oAppointmentItem.GetRecurrencePattern.PatternStartDate = tRPSD
oAppointmentItem.GetRecurrencePattern.PatternEndDate = tRPED
oAppointmentItem.GetRecurrencePattern.startTime = tST
oAppointmentItem.GetRecurrencePattern.endTime = tET
oAppointmentItem.GetRecurrencePattern.Occurrences = tOcc
oAppointmentItem.GetRecurrencePattern.Interval = tInterval

Thus far I am having no luck with this approach. Once calling ClearRecurrencePattern all of the data cannot be updated (or will not persist anyways), which is why I tried the Save but, it does not work. There has to be a better way and I am just missing it.

I've also thought of doing a full copy of the appointment item and then delete/re-add but, I would like to avoid that if at all possible.


回答1:


I found the answer and will post it here in case anyone needs it. You can modify the patternendtime (and I am assuming start time) to cause it to clear the exceptions list. The code below causes all exceptions to be removed from the series.

Dim tEndDate As Date
Dim currentEndDate As Date
Dim dateInterval As Double
currentEndDate = oAppointmentItem.GetRecurrencePattern.PatternEndDate
tEndDate = oAppointmentItem.GetRecurrencePattern.PatternEndDate
' Add a year to the end date so we can force the exceptions to remove.
DateAdd "yyyy", 1, tEndDate
oAppointmentItem.GetRecurrencePattern.PatternEndDate = tEndDate
oAppointmentItem.GetRecurrencePattern.PatternEndDate = currentEndDate


来源:https://stackoverflow.com/questions/4651334/remove-exceptions-from-a-series

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!