Как применить сопоставление эквивалентности с помощью LIKE on Subject? - PullRequest
0 голосов
/ 02 августа 2020

Следуя инструкциям здесь , я пытаюсь отфильтровать события в календаре Outlook.

Мой код для чтения календаря и фильтрации по дате:

    For Each oAppt In oItemsInDateRange
        Debug.Print Format(oAppt.Start, "yyyy-mm-dd hh:mm"), oAppt.Subject
    Next

возвращает:

2020-08-03 00:00            WFH
2020-08-03 04:00            Heineken H1 Earnings
2020-08-03 08:00            Global Payments Q2 Earnings
2020-08-03 14:00            Global Meeting

Но фильтры для '% Earnings%' в теме так:

    'Construct filter for Subject 
    Const PropTag  As String = "https://schemas.microsoft.com/mapi/proptag/"
    strRestriction = "@SQL=" & Chr(34) & PropTag _
        & "0x0037001E" & Chr(34) & " like '%Earnings%'"
    Set oFinalItems = oItemsInDateRange.Restrict(strRestriction)

или так:

    ' final using Jet
    strRestriction = "[Subject] = '%Earnings%'"
    Set oFinalItems = oItemsInDateRange.Restrict(strRestriction)
    oFinalItems.Sort "[Start]"

показывает нет результатов.

Ответы [ 3 ]

1 голос
/ 02 августа 2020

Ограничение URN неверно. Попробуйте этот фильтр:

strRestriction = "@SQL=" & _
        Chr(34) & "urn:schemas:httpmail:subject" & Chr(34) & _
        " like '%Earnings%'"

Я получил новый URN отсюда: https://docs.microsoft.com/en-us/office/client-developer/outlook/pia/how-to-filter-recurring-appointments-and-search-for-a-string-in-the-subject

0 голосов
/ 02 августа 2020

попробуйте удалить%, у меня это работает .....

strRestriction = "[Subject] = 'Earnings'"
Set oFinalItems = oItemsInDateRange.Restrict(strRestriction)
oFinalItems.Sort "[Start]"
0 голосов
/ 02 августа 2020

0x0037001E - это PR_SUBJECT_A. Попробуйте PR_NORMALIZED_SUBJECT_W (имя DASL http://schemas.microsoft.com/mapi/proptag/0x0E1D001F)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...