powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Просьба помочь найти ошибку в коде (цикл)
4 сообщений из 4, страница 1 из 1
Просьба помочь найти ошибку в коде (цикл)
    #39080906
Фотография simply
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
День добрый.
Необходимо отправить почту отобранным в запросе получателям. Что-то в цикле не то, отправляет по кругу без остановки. Просьба помочь. Спасибо.
Код: 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.
Sub SMTP()
Dim oMSG As Object
Dim oConfig As Object
Dim CFields As Object
Dim strBody As String
Dim MailUser As String

Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset


'создаем объект Message это наше письмо
Set oMSG = CreateObject("CDO.Message")
'создаем объект Configuration это настройки соединения
Set oConfig = CreateObject("CDO.Configuration")
Set CFields = oConfig.Fields
Set oMSG.Configuration = oConfig
CFields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
CFields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mskgate1" 'адрес SMTP сервера
CFields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "SUPPORT@mechel.com" 'Login
CFields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "" 'пароль
CFields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
CFields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
CFields("urn:schemas:mailheader:content-language") = "windows-1251"
CFields.Update

lngIDSoglasDoc = Me.ID_Soglas_Doc

           strSQL = "SELECT tsSotrudnik.Mail" _
                & " FROM Soglas_User_tbl INNER JOIN tsSotrudnik ON Soglas_User_tbl.Sotrudnik = tsSotrudnik.Sotrudnik" _
                & " WHERE Soglas_User_tbl.ID_Soglas_Doc=" & lngIDSoglasDoc & " AND Soglas_User_tbl.NumSoglasovanie=1;"
                rst.Open strSQL, CurrentProject.Connection, adLockOptimistic

If rst.RecordCount <> 0 Then

Do Until rst.EOF
rst.MoveFirst 'Переходим на первую запись набора

MailUser = rst![Mail]

oMSG.To = MailUser 'адрес получателя
oMSG.From = "osmor <@mail.ru>" 'адрес отправителя
oMSG.subject = "Тема" ' тема письма
oMSG.BodyPart.Charset = "windows-1251" ' кодировака письма
'oMSG.AddAttachment "c:VANotesInstaller.log" 'путь к вложенному файлу
'формируем HTML текст который будет телом письма
strBody = "Здесь HTML текст." & _
"C уважением,"
oMSG.HTMLbody = strBody 'тело письма
oMSG.send 'отправляем

rst.MoveNext 'Переходим на следующюю запись набора
Loop
Else
MsgBox "Нет адресов для отправки"
End If
rst.Close

'обнуляем переменные
Set CFields = Nothing
Set oConfig = Nothing
Set oMSG = Nothing
End Sub
...
Рейтинг: 0 / 0
Просьба помочь найти ошибку в коде (цикл)
    #39080930
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
simply,порядок строк
Код: vbnet
1.
2.
rst.MoveFirst 'Переходим на первую запись набора
Do Until rst.EOF
...
Рейтинг: 0 / 0
Просьба помочь найти ошибку в коде (цикл)
    #39080931
Фотография simply
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.
...
Рейтинг: 0 / 0
Просьба помочь найти ошибку в коде (цикл)
    #39080933
akirey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно здесь и есть проблема:
...
Do Until rst.EOF
rst.MoveFirst 'Переходим на первую запись набора
...
loop
...

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


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