powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / SendObject срабатывает только один раз...
25 сообщений из 37, страница 1 из 2
SendObject срабатывает только один раз...
    #32307855
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем проблема описана в сабже.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    While Not RS.EOF
        Mes =  ""
        Hum = RS!Emp
        Do While Not RS.EOF
            If Hum <> RS!Emp Then Exit Do
            Mes = Mes & RS!Day & " :  "
            End If
            RS.MoveNext
        Loop
        Mes = Mes & Chr(13 ) & Chr( 10 ) & "Некий текст "
        DoCmd.SendObject , , , " <Email> ", , , " Subj", Mes, False


Ошибок вроде нет. Строчка ...SendObject... исправно выполняется. Но реально отсылается тока 1 письмо...
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307874
мимоходом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На первый взгляд посылаешь письмо выйдя из цикла
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307875
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у тебя на каждый record должно по письму отправляться?

тогда вставь во внутренний цикл этот сендобджект
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307876
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такая же херня...
я конэшно не специалист... а чо ты хотел? как написал так и посылаеться...
со сведениями последней записи...
если хошь каждую запись ставь во внутренний цикл

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307879
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ж))

и каждое новое письмо будет все больше и больше
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307880
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> со сведениями последней записи...
не, Mes накапливается кажись
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307881
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мимоходом много не напишешь :)

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307902
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон муа...
Разумеется код таков
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    While Not RS.EOF
        Mes =  ""
        Hum = RS!Emp
        Do While Not RS.EOF
            If Hum <> RS!Emp Then Exit Do
            Mes = Mes & RS!Day & " :  "
            End If
            RS.MoveNext
        Loop
        Mes = Mes & Chr(13 ) & Chr( 10 ) & "Некий текст "
        DoCmd.SendObject , , , " <Email> ", , , " Subj", Mes, False
    Wend

Во внутреннем цикле идет накопление сообщения, при определенном условии (смены данных в одном столбце) происходит сброс и все продолжается по новой пока не ЕОФ
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307909
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала просто поставь брейкпоийнт на строке: DoCmd.SendObject и посмотри скоко раз у тебя реально вызывается эта строка, потому как дело скорей всего в этом, а дальше уже будем решать что там и почему
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307912
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объясни, почему у тебя двойной вложенный цикл по одному и тому же рекордсету. Ты во внутреннем цикле доходишь до последней записи - и баста. Чего ты еще хочешь при повторном прохождении?
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307913
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в первом посте об этом и написал: реально она вызывается нужное количесво раз, но посылает тока первое письмо...
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307916
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знаешь что меня смущает.
в первом цикле ты ставишь условие пока_не_достигнем_конца_набора_записей, и в нём не двигаешься по записям вооще ни где...
во вложенном цикле ты ставишь тоже условие по тому же набору записей, но уже двигаешься по нему(заметь нигде нет досрочного выхода из этого цикла)... следовательно по выходу из вложеного цикла ты находишься на последней записи и внешний цикл тоже оканчивает свою работу так как и у него условие выполнилось... => на строчку с DoCmd.SendObject ты попадаешь всего один раз, что и т.д.

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307920
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таблице 3 колонки: одна содержит имя чела, вторая некоторый ид, третья данные по иду. Я собираю в ожну строку все даные по одному челу. Так как рекордсет упорядочен по челам, то при "смене" чела я посылаю сформированную строку и начинаю формировать новую для другого чела.
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307926
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообщем повторился...

>реально она вызывается нужное количесво раз, но посылает тока первое письмо...

поясни... ты попадаешь на строчку DoCmd.SendObject , , , "<Email>", , , "Subj", Mes, False более 1го раза?

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307932
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sfagnum
ИМенно

А выход из цикла - пожалуйста: exit do!
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307936
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверка номер 2:

Поставь подряд 3 строки DoCmd.SendObject , , , "<Email>", , , "Subj", Mes, False и посмотри скоко писем пошлется. ;)

где-то ты все-таки напутал
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307944
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я то конечно склоняюсь больше к мнению, что строка просто не вызывается больше одного раз. Например сравнение Hum <> RS!Emp запросто может неправльно сравнивать (сам на такое натыкался) когда RS!Emp вернет тебе Null, все-таки лучше в Nz такие вещи заключать
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307948
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извенини не заметил
попробуй DoEvents после DoCmd.SendObject , , , "<Email>", , , "Subj", Mes, False

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307954
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нулевые значения исключены.
Breakpointom проверил. На sendObject реально пападает чаще одного раза.

Как вы предложили проверил: из трех строчек "выполняются" все, но посылается одно письмо...
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307959
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoEvents пробовал, не помогает
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307966
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю, для чистоты эксперимента надо добавить вместо DoEvents паузу, секунда так на 5-10, все таки это посылка через Outlook идет и поэтому такие тормоза, а DoEvents только для Access будет действовать, а не для Outllok

Ща код функции паузы приложу
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32307982
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В модуль:
Private Declare Function timeGetTime Lib "winmm.dll" () As Long

Public Sub pPause(iTimePause As Integer)
' делает паузу
'[iTimePause] - время паузы в секундах.

Dim lTime As Long

lTime = timeGetTime
Do
DoEvents
Loop Until timeGetTime - lTime >= iTimePause * 1000

End Sub

Всунь эту pPause(10) после DoCmd.SendObject - поглядим как она себя будет вести...
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32308003
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Те же яйца, только в профиль...

Видимо проблема в другом...
Тока вот в чем...
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32308004
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну ещё раз пальцем в небо вынеси SendObject в отдельную процедуру

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32308008
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, идея недурна.

У меня были похожие глюки с Winsock, работал хорошо из разных процедур
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / SendObject срабатывает только один раз...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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