2011-01-10 8 views
4

J'ai une série dans Outlook avec quelques exceptions. Ce que je voudrais faire est de supprimer toutes les exceptions de cette série. Est-ce que quelqu'un sait s'il y a un moyen de le faire? Étant donné que la liste des exceptions est en lecture seule, j'ai essayé effacer le modèle de récurrence et réappliquer toutes les valeurs sans la liste des exceptions comme celle-ci:Supprimer des exceptions d'une série

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 

Jusqu'à maintenant, j'ai pas de chance avec cette approche. Une fois ClearRecurrencePattern appelé, toutes les données ne peuvent pas être mises à jour (ou ne seront pas persistantes), c'est pourquoi j'ai essayé le Save mais ça ne marche pas. Il doit y avoir un meilleur moyen et je le rate tout simplement.

J'ai aussi pensé faire une copie complète de l'article de rendez-vous et ensuite supprimer/rajouter mais, je voudrais éviter cela si possible.

Répondre

1

J'ai trouvé la réponse et je l'afficherai au cas où quelqu'un en aurait besoin. Vous pouvez modifier le patternendtime (et je suppose que l'heure de début) pour l'effacer de la liste des exceptions. Le code ci-dessous entraîne la suppression de toutes les exceptions de la série.

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 
+1

Il convient de noter que cela efface toutes les exceptions. –