Tengo una base de datos de Access configurada con código VBA para un botón de comando sí/no para enviar un correo electrónico automatizado de Outlook. Si el usuario selecciona Sí, abre el correo electrónico para permitir archivos adjuntos.
Mi problema es que cuando el usuario selecciona no, el mensaje no desaparece y envía el correo electrónico según se le solicita, sino que vuelve a hacer la pregunta para obtener una segunda respuesta antes de enviar el correo electrónico. Intenté colocar un "final" en la segunda mitad del código en varios lugares, pero nada parece funcionar. ¡Las sugerencias serán muy apreciadas!
Código a continuación:
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
Respuesta1
Respondí mi propia pregunta: todo lo que tenía que hacer era eliminar el código duplicado en mi segunda declaración If.
MsgBox(cstrPrompt, vbQuestion + vbYesNo) =