Seite 1 von 1

Outlook activeX Restrict Method [erledigt]

Verfasst: Do, 24. Feb 2011 4:32
von AUGE_OHR
hi,
aus dem Beispiel http://msdn.microsoft.com/en-us/library ... 10%29.aspxhabe ich versucht das zu machen

Code: Alles auswählen

   oOutlook := CreateObject( "Outlook.Application" )
   IF Empty(oOutLook)
      RETURN
   ENDIF

   oNameSpace   := oOutlook:GetNamespace( "MAPI" )
   oAppointment := oNameSpace:getDefaultFolder( olFolderCalendar )

   oRest := oAppointment:items
   oRest:treatDateAsString( .T. )
*   oRest:Restrict("[LastModificationTime]" > '"20101231000001"'
   oRest:Restrict("[LastModificationTime] > '20101231'")

   iMax         := oAppointment:items:count()
leider scheint der "Filter" nicht zu wirken :( wieso ?

FindNext (Methode)

Verfasst: Do, 24. Feb 2011 4:39
von AUGE_OHR
und hier das was ich effektive suche mit der FindNext Methode
Nachdem die Find-Methode ausgeführt wurde, sucht diese Methode das nächste Microsoft Outlook-Element in der angegebenen Auflistung und gibt dieses zurück. Der Suchvorgang beginnt an der aktuellen Position, die dem Ausdruck entspricht, der zuvor mit der Find-Methode festgelegt wurde.

Ausdruck.FindNext

Ausdruck Erforderlich. Ein Ausdruck, der ein Items-Auflistungsobjekt zurückgibt.

Beispiel
In diesem Beispiel für Visual Basic für Applikationen (VBA) wird die GetDefaultFolder-Methode verwendet, um das MAPIFolder-Objekt zurückzugeben, das den Standardordner Kalender des aktuellen Benutzers darstellt. In diesem Fall werden die Find- und die FindNext-Methode verwendet, um alle Termine zu suchen, die am jeweiligen Tag (heute) vorkommen. Diese Termine werden dann in verschiedenen Meldungsfeldern angezeigt.

Code: Alles auswählen

Sub DemoFindNext()
	Dim myOlApp As Outlook.Application
	Dim myNameSpace As Outlook.NameSpace
	Dim tdystart As Date
	Dim tdyend As Date
	Dim myAppointments As Outlook.Items
	Dim currentAppointment As Outlook.AppointmentItem
	Set myOlApp = CreateObject("Outlook.Application")
	Set myNameSpace = myOlApp.GetNamespace("MAPI")
	tdystart = VBA.Format(Now, "Short Date")
	tdyend = VBA.Format(Now + 1, "Short Date")
	Set myAppointments = myNameSpace.GetDefaultFolder(olFolderCalendar).Items
	Set currentAppointment = myAppointments.Find("[Start] >= """ & tdystart & """ and [Start] <= """ & tdyend & """")
	While TypeName(currentAppointment) <> "Nothing"
       MsgBox currentAppointment.Subject
       Set currentAppointment = myAppointments.FindNext
Wend
End Sub
es geht dabei um currentAppointment wo ich nur NIL bekomme ... :banghead:
a.) wie muss der "Find" String aussehen
dito wie / was macht VBA.Format(Now, "Short Date")
b.) was ist TypeName() ?

Re: Outlook activeX Restrict Method

Verfasst: Do, 24. Feb 2011 5:37
von AUGE_OHR
hi,

der "Filter" String geht so

Code: Alles auswählen

cFilter      := "[Start] >= '"+ cStart + "' and [Start] <= '"+ cEnd +"'"
oAppointment := oNameSpace:getDefaultFolder( olFolderCalendar ):Items
nun kann man den mit

Code: Alles auswählen

currentAppointment := oAppointment:Restrict(cFilter)
oder mit

Code: Alles auswählen

currentAppointment := oAppointment:Find(cFilter)
...
currentAppointment := oAppointment:FindNext
verwenden ;)