Требуется сделать выборку контактов в Outlook (2003), у которых день рождения будет за определенный период времени (напр. ближайший месяц).
В свойствах представления есть возможность задать условие через SQL DASL, но тогда вручную необходимо каждый раз менять диапазон дат. Хотелось бы это делать автоматом.
Все что у меня получилось, это сформировать запрос для фильтра:
- Код: Выделить всё
...
Dim PrDay As Date
Dim PlPrDay As Date
Dim MnPrDay As Date
Dim str As String
PrDay = Date
PlPrDay = DateAdd("d", 24, PrDay)
MnPrDay = DateAdd("d", -7, PrDay)
str = "(NOT(" & AddQuotes("urn:schemas:contacts:bday") & " Is Null) AND (" & AddQuotes("urn:schemas:contacts:bday") _
& " >= '" & MnPrDay & " 0:00' OR " & AddQuotes("urn:schemas:contacts:bday") & " <= '" & PlPrDay & " 0:00'))"
...
Public Function AddQuotes(ByVal SchemaName As String) As String
On Error Resume Next
AddQuotes = Chr(34) & SchemaName & Chr(34)
End Function
Но как потом передать эту строку в фильтр представления (вкладка SQL), для меня пока остается загадкой. Хотелось бы услышать возможные варианты решения. Спасибо.
P.S. в Outlook 2007 я смог найти решение, но вся проблема в том что мне необходимо это именно для Outlook 2003...