Filtering Items Using Query Keywords
You can use the following query keywords only in DAV Searching and Locating (DASL) queries. Keywords are case-insensitive. Microsoft Jet does not support any query keywords.
ci_startwith and ci_phrasematch
These content indexer keywords provide prefix and phrase matching respectively for items in an indexed store. For example, the following DASL query creates a filter for last name starting with "Smith" and uses a content indexer keyword to return the results:
criteria = "@SQL=" & Chr(34) _ & "urn:schemas:contacts:sn" & Chr(34) _ & " ci_startswith 'Smith'"
The following DASL query creates a filter for last name being exactly "Smith" and uses a content indexer keyword to return the results:
criteria = "@SQL=" & Chr(34) _ & "urn:schemas:contacts:sn" & Chr(34) _ & " ci_phrasematch 'Smith'"
Is Null
Evaluates if a property is null. Returns True if the property is null and False if the property is not null.
Is Null operations are useful to determine if a date property has been set or if a string property is empty. If the date is null, the local time value of the date will be equal to 1/1/4501.
The syntax of Is Null is as follows:
[PropertyName] IS NULL
where PropertyName is the name of a property referenced by namespace.
You can combine the Is Null keywords with the Not operator to evaluate if a property is not null.
The following DASL query retrieves all contacts where the custom property Order Date is not null and the CompanyName property is exactly Microsoft:
criteria = "@SQL=" & "(NOT(" _ & Chr(34) & "https://schemas.microsoft.com/mapi/string/" _ & "{00020329-0000-0000-C000-000000000046}/Order%20Date" & Chr(34) _ & " IS NULL) AND " _ & Chr(34) & "urn:schemas-microsoft-com:office:office#Company" & Chr(34) _ & " = 'Microsoft')"