Usunięcie kontaktu lub poczty

Pytania, problemy, uwagi związane ze starszymi wersjami Microsoft Outlook 2003, 2002 (XP), 2000, 98

Moderator: Moderatorzy

Usunięcie kontaktu lub poczty

Postprzez OShon » Cz 15.02.2007 22:25

Witaj Michu
Chodzi mi o to jaką procedurą da się usunąć pocztę czy kontakt, tak aby nie pojawił się on w Koszu lub z tego koszta bez komunikatu potwierdzającego go usunąć.

Pytam bo łatwiej mi zapisać nowy kontakt (dzięki informacji odebranych z XMLa) a poprzednika o takim samym kluczu w całości skasować (umieszczając w koszu), niż szukać różnic aby zamienić dane, w którym miejscu nastąpiła zmiana tego kontaktu, spotkania czy wiadomości.
Obrazek
Oskar Shon - MVP Office Dev. 11/20, 3x MCC, 4/9/22 TechNet
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 10434
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Projekt autorski VBATools.pl

Postprzez michu » Pt 16.02.2007 10:44

Chodzi mi o to jaką procedurą da się usunąć pocztę czy kontakt, tak aby nie pojawił się on w Koszu lub z tego koszta bez komunikatu potwierdzającego go usunąć.

Z tego co wiem, to nie ma takiej możliwości. Jeśli usuwasz element przez Outlook API, to zawsze pojawia się w koszu.
Pozdrawiam
Michu
michu
 
Posty: 4190
Dołączył(a): N 05.02.2006 17:49
Lokalizacja: Jelenia Góra

Postprzez Shon Oskar » Pt 16.02.2007 11:06

No to może jest procedurka usunięcia zawartości kosza
(na kształt: "Opróżnij folder Elementy usunięte")
O'Shon
Shon Oskar
 
Posty: 182
Dołączył(a): Pn 16.10.2006 09:05
Lokalizacja: Veracomp S.A.

Postprzez michu » Pt 16.02.2007 11:23

Żeby opróżnić folder DeletedItems, musisz usuwać pojedynczo każdą wiadomość:

Kod: Zaznacz cały
    Set objDelItemsFolder = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderDeletedItems)
    Set objItems = objDelItemsFolder.Items
    For intX = objItems.Count To 1 Step -1
        Set objItem = objItems.Item(intX)
        'Permanently delete
        objItem.Delete
    Next
Pozdrawiam
Michu
michu
 
Posty: 4190
Dołączył(a): N 05.02.2006 17:49
Lokalizacja: Jelenia Góra

Postprzez Shon Oskar » Śr 21.03.2007 15:30

Michu a jak wsadzić do tego
aby procedura kasowała tylko wiadomości z wypełnionym polem
.BillingInformation <> ""
O'Shon
Shon Oskar
 
Posty: 182
Dołączył(a): Pn 16.10.2006 09:05
Lokalizacja: Veracomp S.A.

Postprzez michu » Śr 21.03.2007 17:50

Najprościej chyba tak:

Kod: Zaznacz cały
On Error Resume Next
Set objDelItemsFolder = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderDeletedItems)
Set objItems = objDelItemsFolder.Items
For intX = objItems.Count To 1 Step -1
    Set objItem = objItems.Item(intX)
    If objItem.BillingInformation <> "" Then
        'Permanently delete
        objItem.Delete
    End If
Next


Ale nie testowałem. On Error Resume Next może być tutaj ważne bo niektóre elementy mogą nie mieć właściwości BillingInformation.
Pozdrawiam
Michu
michu
 
Posty: 4190
Dołączył(a): N 05.02.2006 17:49
Lokalizacja: Jelenia Góra

Postprzez Shon Oskar » Cz 22.03.2007 10:16

Działa działa - coś mnie zaćmiło i nie zauważyłem że
Set objItems odnosi cię do Items

bardzo dziękuje ;]
O'Shon
Shon Oskar
 
Posty: 182
Dołączył(a): Pn 16.10.2006 09:05
Lokalizacja: Veracomp S.A.


Powrót do Microsoft Outlook

Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 3 gości