powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как из Access получить ссылку на уже открытое активное новое письмо Outllok-a?
12 сообщений из 12, страница 1 из 1
Как из Access получить ссылку на уже открытое активное новое письмо Outllok-a?
    #39285627
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользователь просматривает почту в Outllok-e, находит письмо на которое ему нужно ответить, в Outlook-e жмет кнопку "Ответить" - открывается окошко письма. Далее он жмет кнопку в Access-e, по которой нужно вставить в это письмо текст и файлы...

Собственно вопрос - как из Access получить ссылку на уже открытое новое письмо Outllok-a?
...
Рейтинг: 0 / 0
Как из Access получить ссылку на уже открытое активное новое письмо Outllok-a?
    #39285640
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrF,

Как мне кажется, нужно идти от обратного.
В аксе получить список всех писем из нужной папки. Можно и с фильтрами.
Параллельно можно в коллекцию ссылки на письма эти собрать, "key" будет Id строки полученного письма
Потом выбираете нужное письмо.
Выдергиваете его из коллекции и выдергиваете из него данные.
Потом просто формируете свое письмо, вставив перед этим данные из "старого" письма. А если это не нужно, то еще проще получается
Ну и сохраняете в черновики или отправляете сразу.
...
Рейтинг: 0 / 0
Как из Access получить ссылку на уже открытое активное новое письмо Outllok-a?
    #39285656
Outlook app,
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Как из Access получить ссылку на уже открытое активное новое письмо Outllok-a?
    #39285726
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Private olk As Outlook.Application
Private WithEvents ins As Outlook.Inspectors
Private WithEvents inp As Outlook.Inspector 

Private Sub Class_Initialize()
'Здесь, для примера, по-простецки:
    Set olk = GetObject(, "Outlook.Application")
    Set ins = olk.Inspectors
End Sub

Private Sub ins_NewInspector(ByVal Inspector As Outlook.Inspector)
    Set inp = Inspector
    Debug.Print inp.Caption
'Вот оно!
End Sub

Private Sub inp_Close()
'    почистим
    Set inp = Nothing
End Sub



Не?
...
Рейтинг: 0 / 0
Как из Access получить ссылку на уже открытое активное новое письмо Outllok-a?
    #39285768
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Predeclared,

УУУ. Все оказывается проще, чем я предполагал.
Век живи, век учись.
...
Рейтинг: 0 / 0
Как из Access получить ссылку на уже открытое активное новое письмо Outllok-a?
    #39285852
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Predeclared[src vba]
Не?

Рассыпаюсь в благодарностях ;)
...
Рейтинг: 0 / 0
Как из Access получить ссылку на уже открытое активное новое письмо Outllok-a?
    #39285899
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все же нет полного счастья.

При создании нового пустого письма вышеуказанный способ работает, а вот если в Оутлуке письмо создается нажатием кнопки "Ответить", то нет. А надо что бы все работало и в этом случае...
...
Рейтинг: 0 / 0
Как из Access получить ссылку на уже открытое активное новое письмо Outllok-a?
    #39286031
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел письмо ответа в коллекции Explorers (это случай когда ответ создается без открытия нового окна). В противном случае ответ содержится в Inspectors.

Однако почему-то события NewExplorer (по аналогии с Inspectors) почему-то не возникает. Соответственно зацепиться за него не удается.

Пока нормальной работы удалось добиться через кнопку в Access со следующим кодом:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Private Sub Кнопка0_Click()
    Dim olk As Outlook.Application
    
    On Error Resume Next
    Set olk = GetObject(, "Outlook.Application")
    If Err.Number = 0 Then
        On Error GoTo Err_
        If Not olk.ActiveExplorer Is Nothing Then
            If Not olk.ActiveExplorer.ActiveInlineResponse Is Nothing Then
                If TypeName(olk.ActiveExplorer.ActiveInlineResponse) = "MailItem" Then
                    If Not olk.ActiveExplorer.ActiveInlineResponse.Sent Then ОбработкаПисьма olk.ActiveExplorer.ActiveInlineResponse
                End If
            End If
        End If
        If Not olk.ActiveInspector Is Nothing Then
            If Not olk.ActiveInspector.CurrentItem Is Nothing Then
                If TypeName(olk.ActiveInspector.CurrentItem) = "MailItem" Then
                    If Not olk.ActiveInspector.CurrentItem.Sent Then ОбработкаПисьма olk.ActiveInspector.CurrentItem
                End If
            End If
        End If
    Else
        MsgBox "Вначале создайте новое письмо в Outlook!", vbInformation, "Внимание"
    End If
    Exit Sub

Err_:
    MsgBox Err.Description, vbCritical, "Ошибка"
End Sub

Private Sub ОбработкаПисьма(mi As Outlook.MailItem)
    mi.Subject = "RE: My Subject " & Now
    mi.Body = "Тра-та-та"
End Sub
...
Рейтинг: 0 / 0
Как из Access получить ссылку на уже открытое активное новое письмо Outllok-a?
    #39286103
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И уже более окончательный вариант:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Private Sub Кнопка0_Click()
    Dim olk As Outlook.Application, oi As Object
    
    On Error Resume Next
    Set olk = GetObject(, "Outlook.Application")
    If Err.Number = 0 Then
        On Error GoTo Err_
        If olk.ActiveExplorer Is Nothing Then
            If Not olk.ActiveInspector Is Nothing Then Set oi = olk.ActiveInspector.CurrentItem
        Else
            Set oi = olk.ActiveExplorer.ActiveInlineResponse
        End If
    
        If Not oi Is Nothing Then
            If TypeName(oi) = "MailItem" Then
                If Not oi.Sent Then
                    ОбработкаПисьма oi
                    Exit Sub
                End If
            End If
        End If
    End If
    MsgBox "Вначале создайте новое письмо в Outlook!", vbInformation, "Внимание"
    Exit Sub

Err_:
    MsgBox Err.Description, vbCritical, "Ошибка"
End Sub

Private Sub ОбработкаПисьма(mi As Outlook.MailItem)
    mi.Subject = "RE: My Subject " & Now
    mi.Body = "Тра-та-та"
End Sub
...
Рейтинг: 0 / 0
Как из Access получить ссылку на уже открытое активное новое письмо Outllok-a?
    #39286562
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrF..., а вот если в Оутлуке письмо создается нажатием кнопки "Ответить", то нет...

Пришлось настроить учетную запись и проверить.

У меня таки работает :)
...
Рейтинг: 0 / 0
Как из Access получить ссылку на уже открытое активное новое письмо Outllok-a?
    #39286614
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PredeclaredУ меня таки работает :)

У вас, видимо, старый офис, когда при ответе открывается новое окно. А в 2016-м можно отвечать в том же окне - тогда письмо создается в Explorers...

Впрочем, и мой код надо немного править, иначе в старых офисах будет ошибка. Завтра выложу исправление.
...
Рейтинг: 0 / 0
Как из Access получить ссылку на уже открытое активное новое письмо Outllok-a?
    #39286617
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно.

Да, у меня 2003.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как из Access получить ссылку на уже открытое активное новое письмо Outllok-a?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]