Ниже приведена подпрограмма VBA, которая принимает строку поиска и выполняет поиск в существующем экземпляре Outlook или создает новый экземпляр для поиска. Протестировано в Office 2010. Стоит добавить настоящий обработчик ошибок, если он будет использоваться другими.
Вам нужно будет сделать ссылку на «Библиотеку объектов Microsoft Outlook 14.0» или любую другую версию, которая у вас есть. Вы можете сделать это в окне VBA через Сервис-> Ссылки.
Если вам нравится, вы можете отобразить результаты поиска в самом Access с помощью метода AdvancedSearch .
Sub outlookSearch(searchString As String)
Dim app As Outlook.Application
'This will throw an error if there's no instances of Outlook running
' so resume after the error.
On Error Resume Next
Set app = GetObject(, "Outlook.Application")
On Error GoTo 0 'Replace this with a real error handler
'If the app variable is empty
If app Is Nothing Then
'Create a new instanc eof outlook
Set app = CreateObject("Outlook.Application")
'Add an explorer showing the inbox
app.Explorers.Add app.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
'Make the explorer visible
app.Explorers(1).Activate
End If
'Search all folders for searchString
app.ActiveExplorer.search searchString, olSearchScopeAllFolders
Set app = Nothing
End Sub