PDA

Vollständige Version anzeigen : Termine exportieren (VBA)


Rainer Simon
11.11.2003, 09:32
Hallo,

ich möchte meine Termine in einem bestimmten Format, ohne viel Schnick-Schnack, exportieren.

Den Zugriff habe ich wie folgt realisiert:

Private Sub TermineHTML()
Dim appOutlook As Application '....................................Instanz Outlook
Dim nspNameSpace As NameSpace '....................................? (Übernahme aus OL)
Dim folKalender As MAPIFolder '....................................Kalender MapiFolder(9)
Dim iteTermin As AppointmentItem '.................................Termineintrag
Dim iteEintrag As Items '..........................................Einträge
Dim iteFilter As Items '...........................................gefilterte Einträge
Dim strFilter As String '..........................................Terminauswahl
Dim lngZ As Long
Dim strWoTag As String
Dim varVariant As Variant

'setzen der Objektvariablen
Set appOutlook = CreateObject("Outlook.Application")
Set nspNameSpace = appOutlook.GetNamespace("MAPI")
Set folKalender = nspNameSpace.GetDefaultFolder(9)

Set iteEintrag = folKalender.Items
iteEintrag.Sort "[Start]"
iteEintrag.IncludeRecurrences = True
strFilter = "[Start] >= '01.11.2003' AND [Start]<= '30.11.2003'"
Set iteFilter = iteEintrag.Restrict(strFilter)

'Zugriff Kalender (Ergebnismenge)
For Each varVariant In iteFilter
Set iteTermin = varVariant
strWoTag = WeekdayName(Weekday(CDate(iteTermin.Start)), , vbSunday)
MsgBox iteTermin.Start & vbCrLf & _
iteTermin.End & vbCrLf & _
iteTermin.Location & vbCrLf & _
iteTermin.Subject & vbCrLf & _
iteTermin.AllDayEvent, , strWoTag
Next varVariant

'lösen der Objektvariablen
Set iteFilter = Nothing
Set iteEintrag = Nothing
Set folKalender = Nothing
Set nspNameSpace = Nothing
Set appOutlook = Nothing
End Sub


Wird der Filter auf nur einen Tag gesetzt: strFilter = "[Start] >= '13.11.2003' AND [Start]<= '13.11.2003'", wird nur der erste Termin angezeigt, obwohl es noch zwei weitere an diesem Tag gibt. Was mache ich falsch?

Danke und Gruß Rainer

MarioR
12.11.2003, 11:42
Hallo Rainer,

ich vermute mal, dass "Start" vom Typ Datum ist. Daher müsste der Filter IMHO so aussehen:
strFilter = "[Start] >= #2003-11-13# AND [Start]<= #2003-11-13#"

Rainer Simon
12.11.2003, 11:55
Hallo Mario,

vielen Dank für Deine Antwort. Leider bringt auch der Einsatz der # nicht gewünschten Erfolgt, die Ergebnismenge ist immer leer -> kein Termin.

Habe mir zwischenzeitlich geholfen, indem ich TermineHTML als Prozedur umgestellt habe, die das Ergebnis (die Termine) in eine Zeichenkette schreibt. Als Parameter wird das gewünschte Datum übergeben und in der Bedingung wird der Zeitraum auf +/-1 Tag festgelegt, damit werden nicht alle Termine durchlaufen. Der Termin wird nur dann gespeichert, wenn er mit dem übergebenen Datum übereinstimmt.

Gruß und Dank Rainer