Я не эксперт в программировании на VBA, и мой вопрос может показаться глупым для некоторых, но я был бы признателен за вашу помощь с этим.
У меня есть превосходная пользовательская форма, которая после нажатия кнопки создает OutlookЭлектронная почта, и пользователь вручную щелкает опцию отправки по почте.
Моя проблема заключается в том, что система регистрирует содержимое электронной почты в базе данных Excel (только если пользователь нажимает на опцию отправки в Outlook).через класс Withevents), но если база данных недоступна, появляется сообщение об ошибке, которое должно подсказать пользователю, реальная проблема заключается в том, что подсказка не отображается для пользователя (покрыта электронной почтой Outlook), потому что код Excelнаходится в процессе обработки, и процесс отправки электронной почты будет ожидать его выполнения.
есть ли в любом случае, я могу показать окно сообщения в верхней части Outlook или запустить код для сохранения в базе данных, но только ПОСЛЕОпция отправки нажата?Ниже приведен код, который я использую, я был бы признателен за ваш отзыв
приведенный ниже код в пользовательской форме для заполнения и отображения электронной почты в Outlook
Public itmevt As New CMailItemEvents
Public Outapp As Outlook.Application
Public Outmail As Outlook.MailItem
public subject as string
public body as string
Private Sub SendMail_Click()
Set Outapp = New Outlook.Application
Set Outmail = Outlook.Application.CreateItem(0)
Set itmevt.itm = Outmail
body=userform.text1.text
subject=userform.text2.text
itmevt.itm.Subject = "Some Subject"
With itmevt.itm
.HTMLBody = Body
.Subject = subject
.Display
End With
это кодчтобы вызываемый класс (CMailItemEvents) обнаружил опцию отправки Нажмите
Option Explicit
Public WithEvents itm As Outlook.MailItem
Private Sub itm_Send(Cancel As Boolean)
EmailsForm.savedetails
End Sub
после того, как опция отправки будет нажата, код для сохранения будет запущен
sub savedetails()
--->Open Excel DB
If DB.ReadOnly Then
Msgbox ("Error Message Here") ----> here is the problem, the message shows on excel
--- but the outlook mail is on the front of the screen
exit sub
else
--->Save details to DB
End Sub
Я попытался сохранить пример кодамаксимально коротко и просто.
заранее благодарю за помощь