|
1 / 1 / 0
Регистрация: 17.06.2010
Сообщений: 70
|
|
Обмен данными02.06.2013, 09:09. Показов 2255. Ответов 6
Метки нет (Все метки)
Добрый день, подскажите как реализовать следующее
в базе данных создаем поручение отправляем исполнителю через Outlook, исполнитель отвечает и нужно что бы данные из письма автоматически добавлялись в таблицу access
0
|
|
| 02.06.2013, 09:09 | |
|
Ответы с готовыми решениями:
6
Обмен данными с 1С Обмен данными по сети Обмен данными через таблицы |
|
383 / 209 / 5
Регистрация: 29.05.2013
Сообщений: 337
|
|
| 02.06.2013, 16:32 | |
|
Ой, не зря я спрашивал про почту
![]() Подключите к аксесу таблицу Входящие оутлока через связать. Получите доступ к входящим письмам в табличном виде. Но только к полям письма. Вложения прочитать так не получиться. В принципе можно, но сложно. По этому лучше обмениваться не файлами doc а письмами. Письмо всегда можно распечатать, или сохранить в ворде если очень надо. Запросом с условием можно будет находить нужные письма. По этому запросу уже можно изменить данные в базе. Исходящее письмо с заданием тоже лучше формировать и отправлять из аксеса И это только начало пути, вопросы думаю еще будут.
0
|
|
|
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 02.06.2013, 17:03 | |
|
Наиболее подробно, из известных мне источников на русском, проблема интеграции акса и аутлука рассмотрена в статье osmor на хипроге - http://hiprog.com/index.php?op... =251661546
Если у вас нет доступа к hiprog.com, я выложу текст статьи здесь
0
|
|
|
383 / 209 / 5
Регистрация: 29.05.2013
Сообщений: 337
|
|
| 02.06.2013, 18:05 | |
|
0
|
|
|
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 02.06.2013, 18:40 | |
|
Вот, под спойлером
Кликните здесь для просмотра всего текста
Способы интеграции MS ACCESS и MS Outlook
Автор osmor 18.09.2006 г. Данной статьей автор не ставит перед собой задачу рассказать о всех возможных способах взаимодействия MS Access и MS Outlook или сравнить между собой несколько способов. Задача данной статьи помочь начинающим программистам получить начальную информацию о путях интеграции MS Access и MS Outlook и дать ссылки на справочные материалы. Вся информация, приведенная в данной статье взята из HELP и с сайта msdn.microsoft.com 1. Связывание таблиц Самый простой способ это использовать связанные таблицы. Access позволяет прилинковать таблицы MSOutlook. Достаточно просто вызвать контекстное меню на закладке "Таблицы" и в окне выбора файла в качестве типа файлов указать "Outlook". Далее нужно выбрать какие данные вы ходите прилинковать папку "входящие" , "адресную книгу" или задачи. И вот уже в окне Aсcess появилась связанная таблица с соответствующими данными. Данные в прилинкованных таблицах Outlook доступны только для чтения. Есть только маленький нюанс, для того что бы это стало возможным, нужно установить Microsoft Office Outlook в качестве почтовой программы по умолчанию. 2. Использование MS Outlook View Control. MS Outlook View Control представляет собой ActiveX который легко встраивается в вашу программу (не обязательно Access), и предоставляет методы и свойства для работы с Outlook. Это фактически Outlook c миниатюре, внешний вид представления данных ничем не отличается от представления этих данных в Outlook. Минимального программирования достаточно для обеспечения пользователю доступа ко всем основным функциям Outlook. Как использовать MS Outlook View Control в своей программе можно посмотреть в моем примере : http://hiprog.com/index.php?op... &Itemid=35 MS Outlook View Control для версий начиная с Outlook2000 доступен для загрузки на сайте MS. И конечно там есть вся необходимая документация по работе с ним. Вот несколько полезных ссылок: http://support.microsoft.com/kb/281618/ http://www.microsoft.com/downl... DBC7397623 http://support.microsoft.com/kb/q303835/ http://support.microsoft.com/kb/291407/ 3. Использование технологии COM. Outlook как и другие продукты входящие в состав MSOffice поддерживают технологию COM, т.е. доступ к его объектной модели возможен из других программ. Для работы нужно только одно, знать эту объектную модель. Информацию о объектах, методах, свойствах и событиях Outlook можно почерпнуть в справочном файле, он обычно расположен в папке с офисом, и называется VBAOLХХ.CHM (где ХХ - версия офиса). Так же этот файл доступен на сайте MS: http://www.microsoft.com/downl... laylang=en Там же можно найти множество примеров: Using Automation in Microsoft Office Access 2003 to Work with Microsoft Office Outlook 2003 Using Automation to Send a Microsoft Outlook Message How to Create a New Contact Item in Outlook with Automation Using Automation to Add a Task/Reminder to MS Outlook How to automate Outlook 2002 from another program Ниже приведены несколько функций демонстрирующих возможности данного способа доступу к данным Outlook: (Замечание, предполагается что в программе установлена ссылка на MS Outlook) Function ListOLTasks() 'список задач Dim OL_App As Outlook.Application Dim OL_NameSpace As Outlook.NameSpace Dim OL_FolderTask As Outlook.MAPIFolder Dim OL_ItemTask As Outlook.TaskItem Dim RecipientTask As Recipient ' получаем объект Outlook Set OL_App = CreateObject("Outlook.Application") 'получаем Namespace Set OL_NameSpace = OL_App.GetNamespace("MAPI") ' получаем ссылку на папку задач Set OL_FolderTask = OL_NameSpace.GetDefaultFolder(olFolderTa sks) ' перебираем все задачи в папке For Each OL_ItemTask In OL_FolderTask.Items With OL_ItemTask 'для задачи выводим тему, описание, дату начала, срок исполнения, дату выполнения и исполнителей Debug.Print "Tema: " & .Subject Debug.Print "Описание: " & .Body Debug.Print "Начало: " & .StartDate Debug.Print "Срок: " & .DueDate Debug.Print "Выполнена: " & .DateCompleted Debug.Print "Исполнители: " & .Owner 'если коллекция получателей не пустая, то выводим список получателей задачи If .Recipients.Count > 0 Then Debug.Print "Адреса получателей: "; For Each RecipientTask In .Recipients Debug.Print RecipientTask.Address; Next End If End With Debug.Print Debug.Print "_______________________________________ ________" Next End Function -------------------------------------------------------------------------------- Function ListOLInbox() 'спиcок писем в папке "входящие" Dim OL_App As Outlook.Application Dim OL_NameSpace As Outlook.NameSpace Dim OL_FolderMail As Outlook.MAPIFolder Dim OL_ItemMail As Outlook.MailItem Dim OL_Attachment As Outlook.Attachment ' получаем объект Outlook Set OL_App = CreateObject("Outlook.Application") 'получаем Namespace Set OL_NameSpace = OL_App.GetNamespace("MAPI") ' получаем ссылку на папку Входящие Set OL_FolderMail = OL_NameSpace.GetDefaultFolder(olFolderIn box) ' перебираем все письма в папке For Each OL_ItemMail In OL_FolderMail.Items With OL_ItemMail 'выводим тему, время получения, имя и адрес отправителя и текст письма Debug.Print .BodyFormat Debug.Print "Tema: " & .Subject Debug.Print "Получено: " & .ReceivedTime Debug.Print "Имя и адрес отправителя: " & .SenderName & " (" & .SenderEmailAddress & ")" Debug.Print "Текст письма: " & .Body 'если есть вложения выводим название вложенного файла If .Attachments.Count > 0 Then Debug.Print "Вложения: " For Each OL_Attachment In .Attachments Debug.Print OL_Attachment.FileName Next End If End With Debug.Print "_______________________________________ ________" Next End Function -------------------------------------------------------------------------------- Function ListOLContacts() 'спиcок Контактов Dim OL_App As Outlook.Application Dim OL_NameSpace As Outlook.NameSpace Dim OL_FolderContsct As Outlook.MAPIFolder Dim OL_ItemContact As Outlook.ContactItem Dim OL_Attachment As Outlook.AddressEntry ' получаем объект Outlook Set OL_App = CreateObject("Outlook.Application") 'получаем Namespace Set OL_NameSpace = OL_App.GetNamespace("MAPI") 'получаем ссылку на папку "Контакты" Set OL_FolderContsct = OL_NameSpace.GetDefaultFolder(olFolderCo ntacts) ' перебираем все контакты в папке For Each OL_ItemContact In OL_FolderContsct.Items With OL_ItemContact 'выводим имя, 3 возможных E-mail, домашний и моблиный телефоны Debug.Print "Имя: " & .Subject Debug.Print "E-mai №1: " & .Email1Address Debug.Print "E-mai №2: " & .Email2Address Debug.Print "E-mai №3: " & .Email3Address Debug.Print "Домашний телефон: " & .HomeTelephoneNumber Debug.Print "Мобильный телефон: " & .MobileTelephoneNumber End With Debug.Print "_______________________________________ ________" Next End Function -------------------------------------------------------------------------------- Function ListOLMeeting() 'список встреч назначенных на следующую неделю Dim OL_App As Outlook.Application Dim OL_NameSpace As Outlook.NameSpace Dim OL_FolderCalendar As Outlook.MAPIFolder Dim OL_CalendarItems As Outlook.Items Dim OL_MeetingItem As Object Dim OL_Attendee As Recipient ' получаем объект Outlook Set OL_App = CreateObject("Outlook.Application") 'получаем Namespace Set OL_NameSpace = OL_App.GetNamespace("MAPI") ' получаем ссылку на папку календарь Set OL_FolderCalendar = OL_NameSpace.GetDefaultFolder(olFolderCa lendar) 'используя метод Restrict отбираем только те записи 'у которых свойство start > больше сегодняшней даты и меньше чем сегодня плюс 7 дней ' т.е. те которые назначены на след неделю Set OL_CalendarItems = OL_FolderCalendar.Items.Restrict("[start]> '" & Date & "' And [start] <= '" & Date + 7 & "'") For Each OL_MeetingItem In OL_CalendarItems ' перебираем все отобранне записи With OL_MeetingItem ' если найденная запись - встреча то выводит информацию о If .Class = olAppointment Then Debug.Print "Tema: " & .Subject Debug.Print "Описание: " & .Body Debug.Print "Начало: " & .Start Debug.Print "Продолжительность: " & .Duration & " мин." Debug.Print "Место встречи: " & .Location 'если коллекция участников получателей не пустая, то выводим список участников If .Recipients.Count > 0 Then Debug.Print "Приглашены: ", For Each OL_Attendee In .Recipients Debug.Print OL_Attendee.Name; "; "; Next End If End If End With Debug.Print Debug.Print "_______________________________________ ________" Next End Function -------------------------------------------------------------------------------- Function OpenExistOLContacts(strNameContact AsString) 'Открывает существующий контакт в имени которых содержится переданное значение Dim OL_App As Outlook.Application Dim OL_NameSpace As Outlook.NameSpace Dim OL_FolderContsct As Outlook.MAPIFolder Dim OL_ItemContact As Outlook.ContactItem Dim OL_Attachment As Outlook.AddressEntry Set OL_App = CreateObject("Outlook.Application") ' получаем объект Outlook Set OL_NameSpace = OL_App.GetNamespace("MAPI") 'получаем Namespace 'получаем ссылку на папку "Контакты" Set OL_FolderContsct = OL_NameSpace.GetDefaultFolder(olFolderCo ntacts) For Each OL_ItemContact In OL_FolderContsct.Items ' перебираем все контакты в папке ' если заголовок контакта содержит искомую строку, то открываем его If InStr(1, OL_ItemContact.Subject, strNameContact) Then OL_ItemContact.Display Next End Function -------------------------------------------------------------------------------- Function OpenExistOLTasks() 'Открывает все не закрытые задачи Dim OL_App As Outlook.Application Dim OL_NameSpace As Outlook.NameSpace Dim OL_FolderTask As Outlook.MAPIFolder Dim OL_ItemTask As Outlook.TaskItem Dim RecipientTask As Recipient Set OL_App = CreateObject("Outlook.Application") ' получаем объект Outlook Set OL_NameSpace = OL_App.GetNamespace("MAPI") 'получаем Namespace ' получаем ссылку на папку задач Set OL_FolderTask = OL_NameSpace.GetDefaultFolder(olFolderTa sks) For Each OL_ItemTask In OL_FolderTask.Items ' перебираем все задачи в папке If OL_ItemTask.Status <> olTaskComplete Then OL_ItemTask.Display Next End Function -------------------------------------------------------------------------------- Function CreateNewTask() 'создает новую задачу повторяющуюся каждые 3 недели 'и назначенает ее другому ответсветнному Dim OL_App As Outlook.Application Dim OL_ItemTask As Outlook.TaskItem Dim RecipientTask As Recipient Dim OL_Pattern As Outlook.RecurrencePattern Set OL_App = CreateObject("Outlook.Application") ' получаем объект Outlook Set OL_ItemTask = OL_App.CreateItem(OLTaskItem) ' создаем новую задачу Set OL_Pattern = OL_ItemTask.GetRecurrencePattern ' получаем ссылку на объект 'RecurrencePattern содержащий информацию о периодичности задачи или встречи With OL_Pattern ' устанавливаем частоту повторений (еженедельно) .RecurrenceType = olRecursWeekly ' интервал повторений (раз в 2 недели) .Interval = 2 ' создавать новую задача с указанной частотой после завершения предудущей .Regenerate = True End With With OL_ItemTask .Subject = "Tema задачи" .Body = "Описание задачи" .StartDate = Date ' дата начала выполнения задачи .DueDate = DateAdd("y", 5, Date) ' дата окончания .Assign ' назначим эту задачу некому Иванову Set RecipientTask = OL_ItemTask.Recipients.Add("Иванов Иван") .Save ' сохраним задачу .Display (True) 'покажем задачу в модальном окне End With End Function -------------------------------------------------------------------------------- Function CreateNewMemo() 'создает новое письмо с вложением для нескольких адресатов Dim OL_App As Outlook.Application Dim OL_ItemMail As Outlook.MailItem Dim RecipientTask As Recipient Dim OL_Pattern As Outlook.RecurrencePattern Set OL_App = CreateObject("Outlook.Application") ' получаем объект Outlook Set OL_ItemMail = OL_App.CreateItem(olMailItem) ' создаем новое письмо With OL_ItemMail .To = " osmor@mail.ruЭтот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script " 'адрес получателя .CC = " osmor@mail.ruЭтот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script " 'копия .BodyFormat = olFormatHTML 'формат письма .Subject = "Отчет по продажам за " & CStr(Date) ' заголовок письма ' текст письма. Для красоты HTML .HTMLBody = "<body><div align='center'> <table width='50%' border='1'>" & _ "<caption align='top'> Продажи по салонам за " & CStr(Date) & "</caption>" & _ "<tr><th cope='col' width='60%'>Салон <th width='40%'>Cумма" & _ "<tr><td>Алексеевская <td align='right'>25 021 <tr><td>Маросейка<td align='right'>28 452" & _ "<tr><td>Охотный ряд <td align='right'>22 245<tr></table></div></body>" 'вложение. Если файл не существует, то будет ошибка .Attachments.Add "c:/Forum_ex.INF" .Attachments.Add "c:/FORUM_EX.MDX" .OriginatorDeliveryReportRequested = True 'Уведомление о доставке .ReadReceiptRequested = True 'Уведомление о прочтении .Save ' сохраним письмо .Send ' отправим письмо End With End Function -------------------------------------------------------------------------------- Function CreateNewMeeting() 'создает новую встречу Dim OL_App As Outlook.Application Dim OL_ItemMeeting As Outlook.AppointmentItem Dim OL_Attendee As Outlook.Recipient ' получаем объект Outlook Set OL_App = CreateObject("Outlook.Application") ' создаем новую встречу Set OL_ItemMeeting = OL_App.CreateItem(olAppointmentItem) With OL_ItemMeeting .Subject = "Предлагаю попить пива" .Body = "Возникла острая необходимость встретиться." .MeetingStatus = olMeeting 'статус свстречи ' назначим встречу на завтра в 18:00 .Start = Date + 1 + CDate("18:00") .Duration = 120 'продолжительность 2 часа 'установим напоминание за 1 час до начала встречи .ReminderSet = True .ReminderMinutesBeforeStart = 60 'добавим участников встречи Set OL_Attendee = .Recipients.Add("Bill Gates") OL_Attendee.Type = olRequired 'обязательынй участник> Set OL_Attendee = .Recipients.Add("George W. Bush") OL_Attendee.Type = olOptional 'не обязательынй участник 'место встречи .Location = "На углу у Патриарших" .Save ' сохраним встречу .Display (True) 'покажем задачу в модальном окне End With End Function -------------------------------------------------------------------------------- Function ViewOLTasks() 'Выводит список View доступных для папки задачи и 'открывает список задач c применением случайного доступного вида Dim OL_App As Outlook.Application Dim OL_NameSpace As Outlook.NameSpace Dim OL_FolderTask As Outlook.MAPIFolder Dim OL_View As View Dim I AsInteger ' получаем объект Outlook Set OL_App = CreateObject("Outlook.Application") 'получаем Namespace Set OL_NameSpace = OL_App.GetNamespace("MAPI") ' получаем ссылку на папку задач Set OL_FolderTask = OL_NameSpace.GetDefaultFolder(olFolderTa sks) With OL_FolderTask ' перебираем все доступные для папки виды (Views) Debug.Print "Доступные виды:" For Each OL_View In .Views Debug.Print OL_View.Name Next ' поучаем случаное число Randomize I = Int(.Views.Count * Rnd()) + 1 OL_FolderTask.Views(I).Apply 'применяем выбранный вид .Display 'открываем окно в папкой "Задачи" End With 'для примера получим значение CurrenView через объект Explorer Debug.Print "Установлен вид - " & OL_App.ActiveExplorer.CurrentView End Function -------------------------------------------------------------------------------- Function ViewOLCalendar() 'Открывает паку каледарь Dim OL_App As Outlook.Application Dim OL_NameSpace As Outlook.NameSpace Dim OL_FolderCalendar As Outlook.MAPIFolder ' получаем объект Outlook Set OL_App = CreateObject("Outlook.Application") 'получаем Namespace Set OL_NameSpace = OL_App.GetNamespace("MAPI") ' получаем ссылку на папку Календарь Set OL_FolderCalendar = OL_NameSpace.GetDefaultFolder(olFolderCa lendar) OL_FolderCalendar.Display 'открываем окно в папкой "Календарь" End Function -------------------------------------------------------------------------------- Function Send_Receive() 'Принудительная отправка/прием почты Dim OL_App As Outlook.Application Dim OL_NameSpace As Outlook.NameSpace Dim OL_FolderCalendar As Outlook.MAPIFolder ' получаем объект Outlook Set OL_App = CreateObject("Outlook.Application") 'получаем Namespace Set OL_NameSpace = OL_App.GetNamespace("MAPI") Dim oSyncs As Outlook.SyncObjects Dim oSync As Outlook.SyncObject Set oSyncs = OL_NameSpace.SyncObjects Set oSync = oSyncs.Item("Все учетные записи") 'если английский Outlook то "All Accounts" oSync.Start End Function Не берусь судить какой из перечисленных выше способов лучше... все зависит от поставленной задачи.
1
|
|
|
sledleo
|
|
| 28.06.2013, 14:52 | |
|
корректная ссылка:
Способы интеграции MS ACCESS и MS Outlook |
|
|
1 / 1 / 0
Регистрация: 17.06.2010
Сообщений: 70
|
|
| 29.06.2013, 10:47 [ТС] | |
|
ну а если при попытке присоединить папку Outlook выходит ошибка "object or class does not support the set of events"
0
|
|
| 29.06.2013, 10:47 | |
|
Помогаю со студенческими работами здесь
7
Frontol 5 обмен данными, с чего начать? Как организовать обмен данными между двумя таблицами двух разных файлов Access? Обмен данными в СУБД Выбрать записи, где поле ФИО из БД с исходными данными равно полю ФИО из БД с данными для сравнения. Сравнение в цикле Обмен данными Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|