В Notes есть два «родительских» класса, из которых можно получить все.NotesUIWorkspace - это класс для "внешнего интерфейса": он содержит все, что вы видите в клиенте.NotesSession является классом для серверной части.NotesDatabase - это бэкэнд-класс.Чтобы правильно получить вашу базу данных, вам нужно использовать NotesSession:
Set ses = CreateObject("Notes.NotesSession")
Set db = ses.GetDatabase(serverName, dbname)
Вы перепутали интеграцию COM и OLE.То, что вы пытались использовать ( Lotus .NotesSession), предназначено только для COM, и вам необходимо включить Notes в свой проект, чтобы использовать это.
Чтобы ваш пример работал, вам нужно использоватьИнтеграция OLE: Notes .NotesSession
Теперь к вашему "Поиск" - код:
Существует два разных способа поиска в базе данных Notes:
Тамэто полный текст поиска и "нормальный" поиск.
Fulltextsearch просто ищет ваше значение везде во всех документах и возвращает коллекцию.Поиск "Tom" в почтовом файле найдет все письма / записи календаря, в которых:
- , отправленные Tom
- , полученные Tom
- , содержащие слово "Том "в теме или теле или вложение почты.
Синтаксис для FTSearch:
Set doccol = db.FTSearch( YourSearchValue )
Вы можете ограничить поиск одним определенным полем, используя специальный синтаксис для поиска.Например, для поиска только в поле «От» вы можете написать
[From] = "YourSearchValue"
В FTSearch «=» всегда означает «содержит»
В нормальный поиск используетФормула (в @ Formula-синтаксис) для поиска документа.Ему нужен правильный синтаксис, иначе он ничего не найдет.Формула для поиска всех документов, которые приходят от «Тома», будет выглядеть следующим образом:
@Contains( From ; "Tom" )
Синтаксис для поиска:
Set doccol = db.Search( YourQueryAsExampleAbove, Nothing, 0 )
С Nothing = Cutoffdate (если заданы только созданные возвратные документыили изменено после даты) и 0 = макс.количество документов для возврата (0 = вернуть все).
Так что ваш пример кода для может быть что-то вроде:
strQuery = "FieldToSearch = " & Sheets("sheet1").Range("A1").Value
Set doccol = db.Search( strQuery, Nothing, 0 )