[AccessD] Deleting Outlook Contacts

Rocky Smolin rockysmolin at bchacc.com
Thu Sep 9 17:44:18 CDT 2010


That would be too easy.  What would the MCPs do? :)

R 

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan
Sent: Thursday, September 09, 2010 2:56 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Deleting Outlook Contacts

I do wish that MS could make up their minds whether arrays should be zero or
one based :-(

--
Stuart

On 9 Sep 2010 at 14:51, Rocky Smolin wrote:

> No - I get an array index out of bounds error message
> 
> However this works:
> 
> While olContacts.Count > 0
>     olContacts.Item(1).Delete
>     Set olContacts = olFolder.Items
>     Me.txtProcessing = "Deleting Contacts..." & olContacts.Count Wend
> 
> 
> Rocky
> 
> 
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart 
> McLachlan Sent: Thursday, September 09, 2010 2:39 PM To: Access 
> Developers discussion and problem solving Subject: Re: [AccessD] 
> Deleting Outlook Contacts
> 
> Does something like this work?
> (assuming you have set olFolder to the contacts folder)
> 
> While olContacts.Count > 0
>     olContacts.Item(0).delete
> Wend
> 
> 
> --
> Stuart
> 
> On 9 Sep 2010 at 9:20, Rocky Smolin wrote:
> 
> > OK, here's what's working:
> > 
> >     ' delete all the current contacts
> > DeleteAgain:
> >     Set olContacts = olFolder.Items
> >     If olContacts.Count = 0 Then GoTo DeleteDone:
> >     Me.txtProcessing = "Deleting Contacts..." & olContacts.Count
> >     Me.Repaint Set olContactItem = olContacts.GetFirst
> >     olContactItem.Delete GoTo DeleteAgain:
> > 
> > DeleteDone:
> > 
> > It may not be optimized or the most elegant, but it works.  
> > 
> > Rocky
> > 
> > 
> > -----Original Message-----
> > From: accessd-bounces at databaseadvisors.com
> > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky 
> > Smolin Sent: Thursday, September 09, 2010 9:03 AM To: 'Access 
> > Developers discussion and problem solving' Subject: Re: [AccessD] 
> > Deleting Outlook Contacts
> > 
> > Steve:
> > 
> > " index the contact to be deleted "  not sure what you mean.  I'm a 
> > real amateur at the Outlook object model.
> > 
> > Rocky
> > 
> > 
> > -----Original Message-----
> > From: accessd-bounces at databaseadvisors.com
> > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve 
> > Goodhall Sent: Thursday, September 09, 2010 8:55 AM To: Access 
> > Developers discussion and problem solving Subject: Re: [AccessD] 
> > Deleting Outlook Contacts
> > 
> >   BODY { font-family:Arial, Helvetica, sans-serif;font-size:12px; }I
> >   think
> > your problem is with the way For Each iterates in olContacts.  I am 
> > out on a customer site and don't have access to all my test beds, 
> > but I would suggest that you index the contact to be deleted and 
> > count down from the number of items in the olContacts collection.  I 
> > don't remember whether that index is zero based or one based.
> >  I also suggest that you lose the "GoTo" but that's just style.
> >  Regards, Steve Goodhall, MSCS, PMP 248-505-5204 On Thu 09/09/10
> >  11:25 AM , "Rocky Smolin" rockysmolin at bchacc.com
> > sent:
> >  Dear List:
> >  Still struggling with deleting the Outlook contacts.  I found that
> >  
> > looping through the items and deleting them deleted half so if I 
> > started with 1000 contacts at the end of the loop I had 500 left.
> > If I sent the program back through the loop I ended up with 250. 
> > etc.
> >  So iterating that loop until the Count = 0 works but it's kludgey.
> > Why does
> >  it leave half of the contacts behind each time?
> >  Here's the code:
> >      ' delete all the current contacts
> >      Set olContacts = olFolder.Items
> >  DeleteAgain:
> >      Me.txtProcessing = "Deleting..." & olContacts.Count
> >      Me.Repaint
> >      For Each olContactItem In olContacts
> >          'MsgBox olContactItem.LastName & ", " &
> >          olContactItem.FirstName & "
> >  - " & olContacts.Count
> >          olContactItem.Delete
> >          DoEvents
> >      Next
> >      Set olContacts = olFolder.Items
> >      If olContacts.Count  0 Then GoTo DeleteAgain:
> >  Me.txtProcessing displays the number of contacts each time through
> >  
> > the big loop.  So that's how I know it's only deleting 1/2 each 
> > time. When I uncomment the MsgBox line inside the loop, it shows the 
> > count going to zero each time the loop executes.  But after the loop 
> > finishes, there's still 1/2 the contacts left.  refreshing the count 
> > by Set olContacts = olFolder.Items gives the right count again.
> >  Any idea what the heck is going on here?
> >  MTIA
> >  Rocky
> >  --
> >  AccessD mailing list
> >  AccessD at databaseadvisors.com [1]
> >  http://databaseadvisors.com/mailman/listinfo/accessd
> >  Website: http://www.databaseadvisors.com
> > 
> > 
> > Links:
> > ------
> > [1] mailto:AccessD at databaseadvisors.com
> > --
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/accessd
> > Website: http://www.databaseadvisors.com
> > 
> > --
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/accessd
> > Website: http://www.databaseadvisors.com
> > 
> > --
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/accessd
> > Website: http://www.databaseadvisors.com
> > 
> 
> 
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> 
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> 


-- 
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com




More information about the AccessD mailing list