ItemRemove - wie komme ich an die Felder?

02/03/2009 - 16:20 von Kerstin Schiebel | Report spam
Hallo,

ich möchte per Mail informiert werden, wenn sich in einem anderen Postfach
Terminànderungen ergeben.
Dabei wird eine Mail mit dem Datum, dem Betreff und den evtl. Teilnehmern
gesendet.
Allerdings habe ich ein Problem bei ItemRemove. Weil hier das Item nicht als
Object übergeben wird,
kann ich auf diese Daten nicht mehr zugreifen.
Wie kann ich das lösen?

Vielen Dank und Gruß
Kerstin


Dim WithEvents objTermine As outlook.Items

Private Sub Application_Quit()
Set NS = Nothing
Set objTermineNeu = Nothing
End Sub

Public Sub Application_Startup()
'Prozedur wird beim Starten von OL ausgeführt
Dim NS As outlook.NameSpace
Set NS = Application.GetNamespace("MAPI")
Set objTermine = NS.GetDefaultFolder(olFolderCalendar).Items
End Sub

Private Sub objTermine_ItemAdd(ByVal Item As Object)
' Makro soll folgende Dinge tun:
'- Überprüfen des Kalenders auf neue Eintràge
'- Benachrichtigung per Mail an verschiedene Personen
Dim txtBetreff As String
txtBetreff = "Postfach xyz - Neuer Termin"
Call SendMailNachKalenderAenderung(txtBetreff, Item)
End Sub

... analog für ItemChange und ItemRemove

Public Sub SendMailNachKalenderAenderung(txtBetreff As String, Item As
Object)
'Erstellen einer E-Mail an bestimmte Personen mit
'variablem Textinhalt

On Error GoTo Err_SendMailNachKalenderAenderung
Dim txtTeilnehmer As String
Dim txtText As String
Dim datDat As String
Dim intI As Integer

datDat = "Datum: " & Item.Start
txtText = "Thema: " & Item.Subject
txtTeilnehmer = "Teilnehmer: " & ""

If Item.Recipients.Count > 0 Then
For intI = 1 To Item.Recipients.Count
txtTeilnehmer = txtTeilnehmer & Item.Recipients(intI) & " / "
Next
End If

Dim myOLApp As New outlook.Application
Dim myOLItem As MailItem
Dim txtEmpfaenger As String

Set myOLItem = myOLApp.CreateItem(olMailItem)
txtEmpfaenger ="mailadresse"

With myOLItem
.To = txtEmpfaenger
.Subject = txtBetreff
.Body = txtText & Chr(10) & datDat & Chr(10) & txtTeilnehmer
End With
myOLItem.Send
Ende:
Exit Sub

Err_SendMailNachKalenderAenderung:
MsgBox Err.Number & " : " & Err.Description & " : " & Err.Source
GoTo Ende
End Sub
 

Lesen sie die antworten

#1 Michael Bauer [MVP - Outlook]
02/03/2009 - 19:49 | Warnen spam
Am Mon, 2 Mar 2009 16:20:40 +0100 schrieb Kerstin Schiebel:



Hallo,

ich möchte per Mail informiert werden, wenn sich in einem anderen Postfach
Terminànderungen ergeben.
Dabei wird eine Mail mit dem Datum, dem Betreff und den evtl. Teilnehmern
gesendet.
Allerdings habe ich ein Problem bei ItemRemove. Weil hier das Item nicht als
Object übergeben wird,
kann ich auf diese Daten nicht mehr zugreifen.
Wie kann ich das lösen?



Hallo,

wenn ItemRemove feuert, ist das Item schon gelöscht. Du mußt einen Index
aller Elemente speichern, und wenn das Ereignis feuert, vergleichst Du die
noch vorhandenen Elemente mit der gespeicherten Liste. Damit làßt sich
feststellen, was fehlt.

Etwas Unterstützung dafür bekommst Du mit der Redemption (www.dimastr.com).
Dort liefert das ItemRemove einen Key, den Du direkt mit Deiner Liste
vergleichen kannst.

Viele Gruesse
Michael Bauer - MVP Outlook

: Outlook-Kategorien? Category Manager ist die Lösung
: VBOffice Reporter für Datenanalyse & Berichte
: <http://www.vboffice.net/product.html?pub=6>

Ähnliche fragen