I need a programming hint for changing many Birthdays in batch

M

Mixx

Hi,

I am not a programmer at all but have *a lot* in Outlook (12 years
worth) and learned to write primitive macros to do chores on a number
of selected entries. Copied from bits and pieces on the WEB, without
really understanding what I am doing. But it works for my purposes.

My current problem: got a Blackberry (BB) for Email. It is known that
BB does not synch calendar entries before 1970. I have about 100
Birthdays (recurring yearly) that *start* before 1970. These do not
show up on the BB.

I thought I just select these entries and change their Start date to,
say, 1/1/2000 and then the'll show up. Well, it does not work with my
primitive methods. Can somebody give me a hint why. The following code
is one I use many time to batch change entries.

....
Dim objOL As Outlook.Application
Dim objSelection as Outlook.Selection
Dim Item As Outlook.AppointmentItem
Dim myDate As Date
....

Set objOL = CreateObject("Outlook.Application")
Set objSelection = obj.OLActiveExplorer.Selection

For Each Item In objSelection
Item.Class <> 0 Then '
probably not really needed

MsgBox (Item.Start)
myDate = DateValue("1. Januar 2006") ' German Date
format, is OK
MsgBox (myDate)

Item.Start = myDate
Item.Save

MsgBox (Item.Start)

End If
Next

The problem: The first MsgBox show that the value is as in the
Appointment entry (OK). The second date value (what I want) is also OK.
Third box: shows that assignment does not happen (it really doesn't),
even though I saved the value. Whatever I do, the new date does not get
assigned to the entry.

What am I doing wrong? Thanks for any hint.

Mixx
 
M

Michael Bednarek

I am not a programmer at all but have *a lot* in Outlook (12 years
worth) and learned to write primitive macros to do chores on a number
of selected entries. Copied from bits and pieces on the WEB, without
really understanding what I am doing. But it works for my purposes.

My current problem: got a Blackberry (BB) for Email. It is known that
BB does not synch calendar entries before 1970. I have about 100
Birthdays (recurring yearly) that *start* before 1970. These do not
show up on the BB.

I thought I just select these entries and change their Start date to,
say, 1/1/2000 and then the'll show up. Well, it does not work with my
primitive methods. Can somebody give me a hint why. The following code
is one I use many time to batch change entries.

...
Dim objOL As Outlook.Application
Dim objSelection as Outlook.Selection
Dim Item As Outlook.AppointmentItem
Dim myDate As Date
...

Set objOL = CreateObject("Outlook.Application")
Set objSelection = obj.OLActiveExplorer.Selection

I assume this really reads:
Set objSelection = objOL.ActiveExplorer.Selection
For Each Item In objSelection
Item.Class <> 0 Then ' probably not really needed

MsgBox (Item.Start)
myDate = DateValue("1. Januar 2006") ' German Date format, is OK
MsgBox (myDate)

Item.Start = myDate
Item.Save

MsgBox (Item.Start)

End If
Next

The problem: The first MsgBox show that the value is as in the
Appointment entry (OK). The second date value (what I want) is also OK.
Third box: shows that assignment does not happen (it really doesn't),
even though I saved the value. Whatever I do, the new date does not get
assigned to the entry.

What am I doing wrong? Thanks for any hint.

According to my tests, this should really bring up the error message:
Run-time error -348110843 (eb404005): You don't have the permission to
move this item.

Apparently, this happens for recurring items. In that case, you have to
modify the recurrence pattern. See Ahmed's solution at Sue Mosher's
website: <http://www.outlookcode.com/codedetail.aspx?id=897> for
details.
 
M

Mixx

Thanks, Michael!

Indeed, one has to change the PatternStartDate Variable in the
RecurrencePattern. In my BlackBerry problem I had to shift the YEAR of
it to after 1970.

Thanks a million, Mixx

PS: I never got the error message about permissions, though.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top