Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2012, 08:54   #1
mad_max.86@gmail.r
Новичок
Джуниор
 
Регистрация: 28.04.2012
Сообщений: 2
По умолчанию перебор писем в OutLook'e

Здравствуйте уважаемые !
Прошу помочь в данной проблеме.
Программа в MS Access.
Нужно данной функцией пробежаться по всем входящим письмам в Outlook'e, и сделать с некоторыми из них какие то операции. В данном случае удалить письма при условии что тема письма "Перечисление ДС"

Function UdaleniePisem()
Dim i As Integer, j As String
Dim myItems As Outlook.Items
Dim mailmsg As Outlook.MailItem

Set myItems = Outlook.Application.Session.GetDefa ultFolder(olFolderInbox).Items
If myItems.Count > 0 Then ' проверка, чтоб во входящих вообще были письма
i = 0

'цикл перебора всех писем
For Each mailmsg In myItems
If mailmsg.Subject = "Перечисление ДС" Then 'если тема совпадает, удаляем письмо
mailmsg.Delete
myItems.GetNext
i = i + 1
End If


Else: Forms![ОбработанныеСписки]![StatusBr].Caption = "ВНИМАНИЕ! Нет писем в Outlook'e"
End If

If i > 0 Then Forms![ОбработанныеСписки]![StatusBr].Caption = "Удалено " & i & " писем со списками на одного человека"
End Function

Так вот в чем собственно проблема. Если во входящих присутствует письмо от системного администратора типа "автоответ" с текстом смысла "письмо небыло доставлено так как в почтовом ящике получателя нет мест", То вышенаписанная процедура сразу выдает ошибку №13 Type mismatch.

как избавиться от данной ошибки или обойти ее ?

Последний раз редактировалось mad_max.86@gmail.r; 28.04.2012 в 08:57.
mad_max.86@gmail.r вне форума Ответить с цитированием
Старый 28.04.2012, 10:37   #2
mad_max.86@gmail.r
Новичок
Джуниор
 
Регистрация: 28.04.2012
Сообщений: 2
По умолчанию

все, проблема решена. Подсказали на соседнем форуме.
Кому интересно:

вставь в 9-ю строку Код Visual Basic
on error resume next
mad_max.86@gmail.r вне форума Ответить с цитированием
Старый 28.04.2012, 12:34   #3
mad_max.86
Новичок
Джуниор
 
Регистрация: 26.09.2008
Сообщений: 2
По умолчанию

А вот и нет. Проблема не решается вышеуказанным способом. Просто если добавить эту строчку программа переходит в конец цикла и выходит из него. То есть если у меня 100 писем, и 50-ое от администратора с текстом что ящик получателя заполнен, то будет обработано циклом лишь первые 50 писем.
mad_max.86 вне форума Ответить с цитированием
Старый 28.04.2012, 12:42   #4
mad_max.86
Новичок
Джуниор
 
Регистрация: 26.09.2008
Сообщений: 2
По умолчанию

проблема решается ещё проще. Меняем только 4 строку.

4-я строка Код Visual Basic
Dim mailmsg As object ' Outlook.MailItem
mad_max.86 вне форума Ответить с цитированием
Старый 11.05.2012, 14:45   #5
Сергей Пузарин
Новичок
Джуниор
 
Регистрация: 11.05.2012
Сообщений: 2
По умолчанию

Всем привет!Ребята нужна маленькая помощь-консультация.Вот собственно вопрос: Начал изучать Visual Basic что бы сделать базу данных в Microsoft Access 2007,когда работаю в программе Visual Basic 6 то при добавлении на форму например объекта ComboBox и хочу программно описать его свойства и т.д. то там есть такие свойства как DataSource,DataField, а когда уже в самом Access 2007 я кидаю на форму ComboBox и также хочу программно описать его свойства,НО там уже нету этих свойств DataSource,DataField, скажите пожалуйста ПОЧЕМУ их там нет???
Сергей Пузарин вне форума Ответить с цитированием
Старый 11.05.2012, 17:43   #6
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Выложите пример, я думаю что проблема в обращении и Вам необходимо как-то так:
[forms]![name formm]![textbox1].....
gluk_fm вне форума Ответить с цитированием
Старый 12.05.2012, 11:56   #7
Сергей Пузарин
Новичок
Джуниор
 
Регистрация: 11.05.2012
Сообщений: 2
По умолчанию

С этим уже разобрался, проблема вот в чем.Я использую модель DAO и в меню Tools-References нужно было добавить Microsoft DAO 3.6 Object Library вот и все решение.Но сразу возникла проблема вот строка:
Set MyQwery = MyBase.GreateQueryDef("MyFavoritQue ry", [select Наименование from ТабельПоложенности]).Правильно ли я делаю, запрос на вывод поля Наименование из таблицы ТабельПоложенности.При запуске горит желтым эта строка.Что не так я сделал, помогите плз)
Сергей Пузарин вне форума Ответить с цитированием
Старый 12.05.2012, 22:44   #8
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Сергей Пузарин.
"..Правильно ли я делаю.." - Вы делаете дважды неправильно:
текст запроса должен заключаться в кавычки
Код:
...GreateQueryDef("MyFavoritQue ry", "[select Наименование from ТабельПоложенности]")
для того что-бы задать собственный вопрос необходимо создавать собственную тему.
Ваши вопросы не имеют ничего общего с перебор писем в OutLook'e.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа перебора вариантов (изменить перебор цифровой на перебор буквенный) BArt2000 Паскаль, Turbo Pascal, PascalABC.NET 5 02.03.2015 12:56
отправка писем zed221 PHP 7 05.04.2012 11:25
Отправка ел. писем legendary Win Api 5 01.09.2010 15:44
Отпрака ел. писем legendary Общие вопросы Delphi 3 30.08.2010 15:55
Кодировка писем NoName_emaNoN Работа с сетью в Delphi 46 10.02.2009 12:36