Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access и Outlook. Вытащить данные. / 4 сообщений из 4, страница 1 из 1
25.07.2019, 16:16
    #39841494
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access и Outlook. Вытащить данные.
Есть проблема. Прошу помощи.

Попробую описать проблему. Офис 2010.

Есть получатели (где-то 2000) которым рассылаем анкеты для отчётов. Рассылаем программой через Outlook. Каждому получателю соответствует свой электронный адрес. Получаем письма так же через Outlook. Писем тысячи.
Появилась хотелка, чтобы выбрав адресата в программе Access и нажав на кнопку можно было посмотреть, какие письма отправлены, а какие получены для данного конкретного адресата. Необходимо для работы. Разрешать конфликтные ситуации типа "А Вы нам не посылали..." или "Мы Вам выслали, а Вы..."

Но вот засада. Подключаю в Access папки Outlook Входящие и Отправленные как таблицы
В папке входящие есть два поля. "От" и "Отправитель" причём, содержание их одинаково. и в них может быть или название организации, либо её электронный адрес.
В папке "Отправленные" есть поле "Кому" где так же может находиться или название организации, либо адрес ящика.
Но я могу идентифицировать почту только по электронному адресу. Как его получить?

Можно его вытащить из Outlook при помощи VBA, но это уже будет не то. Надо создать специальную таблицу. Постоянно обновлять в ней данные. А задача многопользовательская. Значит надо как-то отслеживать доступ к этой таблице. Резко падает скорость обработки.

Какие будут идеи?





-------------------------------------------------------------
А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса?
...
Рейтинг: 0 / 0
25.07.2019, 20:28
    #39841638
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access и Outlook. Вытащить данные.
Joss, решал задачку по подключению ЯндексДиска при помощи Web-DavAPI (у Митина есть база с этим подключением, очень помогла) (сначала было mail Cloud Storage но все-таки удалось заказчика перевести на более привычное). Диск один, общий, корпоративный - пользователи не могут в него зайти -не имеют права- только запросом через Web-Dav получать документы, виртуального диска на компьютере клиента нет, в может есть (это неважно).
Смысл в том что что обрабатывать почту, закидывать данные на диск, в папку скажем с названием адресата, а дальше народ может просмотреть в любом месте в любой момент, причем можно вытаскивать иконки, для информации (позволяет Webdavapi).
...
Рейтинг: 0 / 0
26.07.2019, 07:08
    #39841718
zimkon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access и Outlook. Вытащить данные.
Joss,

Так пробовал? 1246834
...
Рейтинг: 0 / 0
26.07.2019, 08:51
    #39841736
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access и Outlook. Вытащить данные.
Для извлечения информации. можно использовать
Код: 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.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
'---------------------------------------------------------------------------------------
' Procedure : Outlook_ExtractMessages
' Author    : Daniel Pineault, CARDA Consultants Inc.
' Website   : http://www.cardaconsultants.com
' Purpose   : Extract E-mail Listing
' Copyright : The following is release as Attribution-ShareAlike 4.0 International
'             (CC BY-SA 4.0) - https://creativecommons.org/licenses/by-sa/4.0/
' Req'd Refs: Uses Late Binding, so none required
'
' Usage:
' ~~~~~~
' Call Outlook_ExtractMessages
'
' Revision History:
' Rev       Date(yyyy/mm/dd)        Description
' **************************************************************************************
' 1         2019-07-15              Initial Release
'---------------------------------------------------------------------------------------
Sub Outlook_ExtractMessages()
    Dim oOutlook              As Object    'Outlook.Application
    Dim oNameSpace            As Object    'Outlook.Namespace
    Dim oFolder               As Object    'Outlook.folder
    Dim oItem                 As Object
    Dim oPrp                  As Object
    Const olFolderInbox = 6
    Const olMail = 43
 
    On Error Resume Next
    Set oOutlook = GetObject(, "Outlook.Application")        'Bind to existing instance of Outlook
    If Err.Number <> 0 Then        'Could not get instance, so create a new one
        Err.Clear
        Set oOutlook = CreateObject("Outlook.Application")
    End If
    On Error GoTo Error_Handler
 
    Set oNameSpace = oOutlook.GetNamespace("MAPI")
    Set oFolder = oNameSpace.GetDefaultFolder(olFolderInbox)
    '    Set oFolder = oOutlook.ActiveExplorer.CurrentFolder    'Process the currently selected folder
    '    Set oFolder = oNameSpace.PickFolder    'Prompt the user to select the folder to process
 
    On Error Resume Next
    For Each oItem In oFolder.Items
        With oItem
            If .Class = olMail Then
                Debug.Print .EntryId, .Subject, .Sender, .SentOn, .ReceivedTime
                For Each oPrp In .ItemProperties
                    Debug.Print , oPrp.Name, oPrp.Value
                Next oPrp
            End If
        End With
    Next oItem
 
Error_Handler_Exit:
    On Error Resume Next
    If Not oPrp Is Nothing Then Set oPrp = Nothing
    If Not oItem Is Nothing Then Set oItem = Nothing
    If Not oFolder Is Nothing Then Set oFolder = Nothing
    If Not oNameSpace Is Nothing Then Set oNameSpace = Nothing
    If Not oOutlook Is Nothing Then Set oOutlook = Nothing
    Exit Sub
 
Error_Handler:
    MsgBox "The following error has occured" & vbCrLf & vbCrLf & _
           "Error Number: " & Err.Number & vbCrLf & _
           "Error Source: Outlook_ExtractMessages" & vbCrLf & _
           "Error Description: " & Err.Description & _
           Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl) _
           , vbOKOnly + vbCritical, "An Error has Occured!"
    Resume Error_Handler_Exit
End Sub



Всё дело в том, что хочется работать с подключенными таблицами, а не создавать каждый раз новые таблицы считывая информацию.
Здесь три способа определения папки для считывания. Два закомментированы. Можно выбрать любой, какой понравится.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access и Outlook. Вытащить данные. / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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