От доступа к электронной почте Outlook и обратно - PullRequest
0 голосов
/ 11 сентября 2009

Я пытаюсь настроить форму, в которой пользователь может нажать на кнопку, и он извлекает адрес электронной почты контакта, создает новое электронное письмо, позволяет пользователю напечатать свое электронное письмо и отправить его, а затем сохранить электронная почта в таблицу.

У меня это работает, за исключением одной маленькой проблемы. В более ранних версиях Outlook (2003 и более ранних) вы можете настроить Word в качестве редактора электронной почты. Если это так, код никогда не завершается.

 Dim objOutlook As Object 
 Dim objmessage As Object 
 Dim myInspector As Variant

 Set objOutlook = CreateObject("outlook.application", "localhost")
 Set objmessage = objOutlook.createItem(0)
 objmessage.To = Me!email
 Set myInspector = objmessage.GetInspector
 myInspector.display

 (v THIS IS THE CODE THAT LOOPS, SEE BELOW v)
 While Not myInspector.CurrentItem Is Nothing
    DoEvents
 Wend

Когда Outlook является редактором электронной почты, блок while, отмеченный выше, зацикливается, пока пользователь не отправит или не закроет сообщение электронной почты (myInspector.CurrentItem будет очищен). Затем он продолжает оттуда, чтобы вернуть информацию обратно в Access. Однако, когда Word является редактором электронной почты, код, отмеченный выше, зацикливается навсегда (myInspector.CurrentItem никогда не очищается). Кто-нибудь знает, почему он это делает? И если вы это сделаете, что я могу сделать, чтобы решить эту проблему, чтобы она работала для Word в качестве редактора электронной почты, как для Outlook?

Ответы [ 2 ]

1 голос
/ 21 сентября 2009
 While Not objOutlook.ActiveInspector Is Nothing
    DoEvents
 Wend

Это сработало на моем. Пожалуйста, проверьте это, если оно будет работать.

0 голосов
/ 11 сентября 2009

Это правда, что когда вы открываете Outlook с Word в качестве редактора, вы создаете новые экземпляры как Outlook, так и Word. Вы должны иметь возможность отменить использование Word в качестве редактора через объект OutlookMsg.

Если сообщения действительно простые и без вложений, вы также можете ввести их в элемент управления memo и отправить их непосредственно из Access (команда sendObject), но тогда они не будут сохранены в Outlook.

...