Удалить исключения из серии - PullRequest
4 голосов
/ 10 января 2011

У меня есть серия в Outlook с несколькими исключениями.Что я хотел бы сделать, это удалить все исключения из этой серии.Кто-нибудь знает, есть ли способ сделать это?Поскольку список исключений доступен только для чтения, я попытался очистить шаблон повторения и повторно применить все значения без списка исключений, например:

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

Пока что мне не повезло с этим подходом.После вызова ClearRecurrencePattern все данные не могут быть обновлены (или не будут сохраняться в любом случае), поэтому я попытался сохранить, но он не работает.Должен быть лучший способ, и я просто скучаю по нему.

Я также подумал о создании полной копии пункта назначения, а затем об удалении / повторном добавлении, но я хотел бы избежать этого, если это вообще возможно.

1 Ответ

1 голос
/ 11 января 2011

Я нашел ответ и опубликую его здесь, если кому-то понадобится. Вы можете изменить patternendtime (и я предполагаю время начала), чтобы очистить список исключений Приведенный ниже код приводит к удалению всех исключений из серии.

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
...