VBA Outlook. Информация в текстовом поле не заполнена, но электронная почта все еще отправляется - PullRequest
0 голосов
/ 30 августа 2018

Может ли кто-нибудь сказать мне ошибку о том, почему после того, как я нажму кнопку отправить, текстовое поле, которое не заполняется, становится красным, однако после появления всплывающего сообщения, чтобы продолжить, даже после того, как я нажму «да», я не могу продолжить заполнять пробелы и письмо было отправлено напрямую.

Private Sub Send_Click()

    'Check the value if blank
    If Branchname.Value = "" Or _
       subject.Value = "" Or _
       Makername.Value = "" Or _
       Checkername.Value = "" Or _
       Filename.Value = "" Then

        'If value=0 then change the highlight to notify user
        If Branchname.Value = "" Then
            Branchname.BackColor = vbRed
        End If

        If subject.Value = "" Then
            subject.BackColor = vbRed
        End If

        If Makername.Value = "" Then
            Makername.BackColor = vbRed
        End If

        If Checkername.Value = "" Then
            Checkername.BackColor = vbRed
        End If

        If Filename.Value = "" Then
            Filename.BackColor = vbRed
        End If

        'Display msgbox to prompt user
        If MsgBox("Form is not complete.Do you want to continue?", vbQuestion + vbYesNo) <> vbYes Then
            Exit Sub
        End If
    End If

    'Call emailfunction
    Call Sendbasicemaillatebingding

    'reset everything
    Call Resetform

    'drop the form
    Unload Me     
End Sub

1 Ответ

0 голосов
/ 30 августа 2018

Потому что это то, что вы говорите, чтобы сделать это. Способ настройки вашего кода. Если вы нажмете «Нет» в MsgBox, вы выйдете из функции «Отправить» и вернетесь к форме. Если вы нажмете «Да», вы продолжите выполнение, вызывая функцию отправки электронной почты, вызывая функцию сброса формы, а затем выгружая форму.

Теперь, когда вы спрашиваете пользователя "Вы хотите продолжить?" Вы спрашиваете, хочет ли пользователь отправить электронное письмо без заполнения формы. Если пользователь говорит «да», то вы продолжаете отправлять электронное письмо. Если нет, то вы возвращаетесь к форме с незавершенными полями, выделенными красным. Опять же, это то, что делает ваш код. Если это не то, что вы хотите сделать, то вам нужно решить, что вы делаете хотите сделать, и реализовать это.

Кроме того, нет логической причины сбрасывать форму и выгружать ее. Разгрузка удаляет его с экрана. Таким образом, похоже, что вы должны проработать логику вашей программы. Предположительно, вы хотите сбросить форму и оставить ее открытой. Выгрузите форму из какой-то кнопки «Выход» рядом с кнопкой «Отправить».

...