powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / SendObject срабатывает только один раз...
37 сообщений из 37, показаны все 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
SendObject срабатывает только один раз...
    #32308041
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настоящий программист на вопрос "Сможешь ли ты это сделать?" сначала ответит "Да", а потом подумает, как!

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

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

Вот за это я и не люблю Акс... А готовить его надо на медленном огне, получая максимум удовольствия от его мучений...
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32308148
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята,проснитесь.Лифчик же уже объяснил в чем дело.Внешний цикл выполнится только один раз,потому что при выходе из внутреннего цикла указатель записи будет стоять на EOF.
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32308153
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2(c)VIG
А мне кажется, не обязательно:
...
If Hum <> RS!Emp Then Exit Do
...
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32308161
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да уж ,поторопился отметиться. Но все равно,имхо,2цикла здесь не нужно.Вполне можно обойтись одним.
Сейчас проверил
Код: plaintext
1.
2.
For i =  1  To  4 
    DoCmd.SendObject acSendNoObject, , ,  "VIG_email" , , , stam,  "Hello VIG "  & i, False, False
Next i

у меня отсылает столько раз сколько нужно
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32308481
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит наша помощь может только одна: пусть выложит свой пример и все его помучают, потому как дело судя по всему не в самом коде, а в комплексе: код, данные, настройки базы, виндов и еще бог знает чего...
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32308747
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маленькая добавка: вместо doeventa или timera стоит попробовать
...msgbox!!!

sendobject
msgbox

зачем?
чтобы отловить именно ГЛЮК - если так (с приличным опытным ожиданием) отошлется , значит, не хватает времени на готовность к приему новой команды
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32308768
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такое издевательство с нехваткой времени иногда наблюдается
при работе с Excel через Acess =
иногда Exel не успевает выполнить закрытие, а объекту уже говорят
= nothing
после чего к бедной софтине приходит доктор который ватсон.

+лечится приличным ожидаением при качественно работающем doevents +находится именно msgboxом

Кому не лень добавьте в соответствующий фак...
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32308825
а федя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
глюпий вопрос: если ходить с брейк -понтами, то скоко раз отсылается? Стоко же, скоко и попадает на пойнт? Или там ошибка какая возникает кроме одного раза а где-то више on error resume next прописано?
...
Рейтинг: 0 / 0
SendObject срабатывает только один раз...
    #32308988
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДА мутновато конечно, хотелось бы пощупать этого зверя в живую
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / SendObject срабатывает только один раз...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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