Fred,
This does work and is more efficient UNLESS you add an item in at the same
time, in which case it fails. I know this is a very, very remote possibility
but... 

Dave

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf
Of Fred Taylor
Sent: 23 September 2011 17:23
To: ProFox Email List
Subject: Re: Automating outlook tasks

Wouldn't be easier to traverse the items backwards?

m.nTasks = oTasks.Items.Count
FOR m.xx=m.nTasks to 1 STEP -1
  IF oTasks.Items[m.xx].Subject="#"
    otasks.Items[m.xx].Delete()
  ENDIF
ENDFOR

Fred


On Fri, Sep 23, 2011 at 6:41 AM, Dave Crozier <[email protected]> wrote:

> Steve,
> Me being stupid here. The tasks collection is dynamic so when you delete
an
> entry then the collection changes so you can't traverse simply oonce
through
> it like you are doing.
>
> Each time you delete a task you have to re-initialise the collection and
> traverse again through it, for example:
>
> loOutlook = CREATE("Outlook.Application")
> loNamespace = loOutlook.GetNameSpace("MAPI")
> oTasks = loNameSpace.GetDefaultFolder(13)
>
> nDeletions = 99
> *
> do while nDeletions<>0
>        nDeletions=0
>        for each loTask in oTasks.Items
>                if substr(loTask.Subject,1,1)='#'
>                lStatus=loTask.Delete
>                nDeletions = nDeletions + 1
>                exit
>                endif
>        endfor
> enddo
>
> Dave
>
[excessive quoting removed by server]

_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/profox
OT-free version of this list: http://leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message: 
http://leafe.com/archives/byMID/profox/[email protected]
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to