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

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

Как мне кажется, нужно идти от обратного.
В аксе получить список всех писем из нужной папки. Можно и с фильтрами.
Параллельно можно в коллекцию ссылки на письма эти собрать, "key" будет Id строки полученного письма
Потом выбираете нужное письмо.
Выдергиваете его из коллекции и выдергиваете из него данные.
Потом просто формируете свое письмо, вставив перед этим данные из "старого" письма. А если это не нужно, то еще проще получается
Ну и сохраняете в черновики или отправляете сразу.
...
Рейтинг: 0 / 0
03.08.2016, 18:26
    #39285656
Outlook app,
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из Access получить ссылку на уже открытое активное новое письмо Outllok-a?
...
Рейтинг: 0 / 0
03.08.2016, 20:19
    #39285726
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из Access получить ссылку на уже открытое активное новое письмо Outllok-a?
Код: 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
03.08.2016, 23:50
    #39285768
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из Access получить ссылку на уже открытое активное новое письмо Outllok-a?
Predeclared,

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

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

При создании нового пустого письма вышеуказанный способ работает, а вот если в Оутлуке письмо создается нажатием кнопки "Ответить", то нет. А надо что бы все работало и в этом случае...
...
Рейтинг: 0 / 0
04.08.2016, 11:16
    #39286031
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из Access получить ссылку на уже открытое активное новое письмо Outllok-a?
Нашел письмо ответа в коллекции 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
04.08.2016, 11:59
    #39286103
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из Access получить ссылку на уже открытое активное новое письмо Outllok-a?
И уже более окончательный вариант:

Код: 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
04.08.2016, 19:35
    #39286562
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из Access получить ссылку на уже открытое активное новое письмо Outllok-a?
AndrF..., а вот если в Оутлуке письмо создается нажатием кнопки "Ответить", то нет...

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

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

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

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

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


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