У меня есть Access DB, настроенная с кодом VBA для кнопки команды «да/нет» для отправки автоматизированного письма Outlook. Если пользователь выбирает «Да», письмо открывается для вложений.
Моя проблема в том, что когда пользователь выбирает "нет", сообщение не исчезает и не отправляет электронное письмо, как было предложено, а вместо этого снова задает вопрос для второго ответа перед отправкой электронного письма. Я пробовал помещать "end" во вторую половину кода в разных местах, но ничего не работает. Предложения были бы очень признательны!
Код ниже:
Private Sub Command2064_Click()
Const cstrPrompt As String = _
"Do you want to add an attachment to your audit feedback?"
If MsgBox(cstrPrompt, vbQuestion + vbYesNo) = vbYes Then
'******begin code******
Dim olApp As Object
Dim objMail As Object
Set olApp = GetObject(, "Outlook.Application") 'See if Outlook is open
'Create e-mail item
Set objMail = olApp.CreateItem(olMailItem)
'***creates and sends email
With objEmail
With objMail
.To = Me.Combo0 & "" & "@myemail.com"
'.Cc = "[email protected]"
.Subject = "Audit Correction Needed"
.Body = Me.Text136 & " " & " " & Me.Combo154 & " " & Me.Text1677
.Display
End With
End
End With
End If
If MsgBox(cstrPrompt, vbQuestion + vbYesNo) = vbNo Then
Set olApp = GetObject(, "Outlook.Application") 'See if Outlook is open
'Create e-mail item
Set objMail = olApp.CreateItem(olMailItem)
'***creates and sends email
With objEmail
With objMail
.To = Me.Combo0 & "" & "@myemail.com"
'.Cc = "[email protected]"
.Subject = "Audit Correction Needed"
.Body = Me.Text136 & " " & " " & Me.Combo154 & " " & Me.Text1677
.send
End With
End With
MsgBox "Audit Correction Email has been sent. You must now select the Send to Tracking Sheet button."
End If
End Sub
решение1
Я сам ответил на свой вопрос — все, что мне нужно было сделать, это удалить дублирующийся код во втором операторе If.
MsgBox(cstrPrompt, vbQuestion + vbYesNo) =