[AccessD] Deleting Outlook Contacts

Rocky Smolin rockysmolin at bchacc.com
Thu Sep 9 11:20:13 CDT 2010


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




More information about the AccessD mailing list