Добрый день. Просьба найти ошибку в следующем коде. Краткая информация: MHC и inzh - checkbox, SendTo - textbox. Необходимо, чтобы send_click отправляла письмо по выбранным пользователям галочкам(checkbox), либо на адрес введенный вручную в поле SendTo. Не удается сделать так, чтобы во всех случаях корректно отправлялось письмо. Заранее спасибо
Код
Private Sub send_Click()
If MHC.Value = True Then
recipient = "MHC@pochta.ru"
res = SendEmailUsingOutlook(recipient, letter, subject)
End If
If inzh.Value = True Then
recipient = "inzh@pochta.ru"
res = SendEmailUsingOutlook(recipient, letter, subject)
End If
If MHC.Value = False And inzh.Value = False And Mail.SendTo.Value = "" Then
If Mail.SendTo.Value = "" Then
MsgBox "Пусто"
Else
MsgBox Mail.SendTo.Value
End If
End If
res = SendEmailUsingOutlook(recipient, letter, subject)
If res Then MsgBox "Письмо отправлено успешно" Else MsgBox "Ошибка отправки"
End Sub
1. Коды оформляются соответствующей кнопкой: <...> 2. Лучше прикладывать файл. 3. Приложенный код не полный. Не хватает самого главного - функции SendEmailUsingOutlook, которая судя по всему и занимается отправкой. А все остальное это так, проверки.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
1. Исправил, спасибо за замечание 2. Файл не могу приложить из-за политики конфиденциальности компании 3. В функции SendEmailUsingOutlook все точно правильно. Вся проблема в этих проверках Спасибо за замечания
kysokg написал: send_click отправляла письмо по выбранным пользователям
ну в приложенном коде нет никакого выбора - есть проверка галочек в разных checkbox-ах. Сидеть и гадать что там у Вас реально на форме вообще нет желания. Здесь не форум гадалок, чтобы по голому коду формы искать ошибку логики кода. Правда, вот это точно фигня какая-то:
Код
If MHC.Value = False And inzh.Value = False And Mail.SendTo.Value = "" Then
If Mail.SendTo.Value = "" Then
MsgBox "Пусто"
Else
MsgBox Mail.SendTo.Value
End If
End If
Зачем эти проверки, если выхода из процедуры нет и все равно идет отправка? При этом, судя по коду, recipient в этом случае пуст. Наверное, надо бы так сделать:
Код
If MHC.Value = False And inzh.Value = False And Mail.SendTo.Value = "" Then
If Mail.SendTo.Value = "" Then
MsgBox "Пусто"
Else
MsgBox Mail.SendTo.Value
End If
Exit Sub
End If
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Ошибку точно не найду, но предложу свой рабочий вариант. И не вижу никакой проблемы из рабочего файла сделать пример. Форма ниже у меня 2 года, ежедневно отправляла 10-30 разных отчетов, по индивидуально настроенным рассылкам, на 20-300 эл.ящиков, может пригодится. Только по началу - нужно будет справочник создать в левой части. За кнопкой создания письма - функция умной сцепки + задание темы и типового начала сообщения. Мне было очень удобно.