При предварительном просмотре отчета щелкните правой кнопкой мыши и выберите параметр Отправить ... -> Получатель почты.
Мне нужно перехватить это событие и выполнить код, который читает адрес электронной почты получателя какнабрал в Outlook, когда он появится.Этот код должен находиться в модуле в базе данных Access.
Если возможно, я также хотел бы прочитать тему.
Трудно найти ответы в Интернете, и, несмотря на некоторый опыт работы сAccess и VBA, я даже не знаю, с чего начать.
Редактировать: Из ответа Дмитрия я нашел этот цикл через инспекторов,
Private Sub Form_Timer()
Dim myInspectors As Outlook.Inspectors
Dim x As Integer
Dim iCount As Integer
Set myInspectors = Application.Inspectors
iCount = Application.Inspectors.Count
If iCount > 0 Then
For x = 1 To iCount
MsgBox myInspectors.Item(x).Caption
Next x
Else
MsgBox "No inspector windows are open."
End If
End Sub
но выдает ошибку компиляции:
Редактировать 2:
Я переместилкод в функцию, и когда Outlook работает, я не получаю ошибок от этого вызова GetObject.Но с этой функцией на таймере 2s, objApp.Inspectors.Count остается 0, пока я пишу письмо и отправляю его.
Public Function checkInspectors() As Boolean
Dim myInspectors As Outlook.Inspectors
Dim OutLookWasNotRunning As Boolean
Dim objApp As Object
Set objApp = GetObject(, "Outlook.Application")
If Err.Number <> 0 Then OutLookWasNotRunning = True
Err.Clear ' Clear Err object in case error occurred.
If Not OutLookWasNotRunning Then
Set myInspectors = objApp.Inspectors
Dim x As Integer
Dim iCount As Integer
iCount = objApp.Inspectors.Count
If iCount > 0 Then
For x = 1 To iCount
Debug.Print myInspectors.Item(x).Caption
Next x
Debug.Print "---"
Else
'MsgBox "No inspector windows are open."
End If
End If
End Function