Filtering Appointments by StartTime and EndTime
By default, a calendar folder’s Messages collection contains all of the user’s appointments. In most applications, it’s desirable to cut this down to just the appointments that fall within a certain date or time range (for example, when the application is displaying the current day’s or week’s appointments). This can be achieved with the MessageFilter object, available through the Messages collection’s Filter property.
The
MessageFilter object was introduced in Chapter 7,
and it’s used here in much the same way. However, when using
the MessageFilter object to filter appointments, only the start time
and end time can be filtered. If an attempt is made to filter other
properties, a
CdoE_TOO_COMPLEX
error is raised. Further, the MessageFilter object doesn’t have
explicit properties for filtering the start time and end time, so the
Fields collection must be used to achieve this result. The Fields
collection provides a way to access MAPI properties that aren’t
otherwise exposed by CDO. The Fields collection is examined in detail
in Chapter 9, where it allows us to access task
information. (CDO objects don’t have any properties that expose
task information.) For the present discussion it will suffice to note
that the start and end date properties of the MessageFilter object
can be set with the following code, which is taken from Example 8-1, to be shown shortly:
Set CdoFields = CdoMessageFilter.Fields Set CdoField = CdoFields.Add(CdoPR_START_DATE, ...
Get CDO & MAPI Programming with Visual Basic: now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.