2009-09-10 69 views
0

我試圖設置一個表單,用戶可以點擊一個按鈕,它會拉取聯繫人的電子郵件地址,創建一個新的電子郵件,允許用戶鍵入他們的電子郵件併發送,然後將電子郵件保存到表格中。從訪問到Outlook電子郵件和返回

我有它的工作,除了一個小問題。在較早版本的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的電子郵件編輯器中,上述標記,而塊循環,直到用戶或者發送或關閉電子郵件消息(myInspector.CurrentItem被清除)。然後從那裏繼續將信息重新導入Access。但是,當Word是電子郵件編輯器時,上面標記的代碼永遠循環(myInspector.CurrentItem永遠不會被清除)。任何人都知道爲什麼它會這樣做?如果你這樣做,我能做些什麼來解決這個問題,所以它適用於Word,就像電子郵件編輯器一樣適用於Outlook?

回答

1
While Not objOutlook.ActiveInspector Is Nothing 
    DoEvents 
Wend 

它對我的工作。請檢查它是否正常工作。

+0

對。像魅力一樣工作。 – KevenDenen 2009-09-23 14:38:57

0

確實,當您以Word作爲編輯器打開Outlook時,您正在創建Outlook和Word的新實例。您應該可以通過OutlookMsg對象取消使用Word作爲編輯器。

如果消息非常簡單,並且沒有附件,您也可以在備忘錄控件中鍵入它們並直接從Access(sendObject命令)發送它們,但不會將它們保存到Outlook。

+0

不幸的是,客戶需要能夠使用Word作爲他們的電子郵件編輯器。 – KevenDenen 2009-09-11 14:48:53

+0

你的客戶非常愚蠢。 – 2009-09-12 02:22:21

+0

理解爲什麼你的客戶會強制使用Word作爲電子郵件編輯器是很有趣的。根據它的「軟件知識」,它的論點可能在技術上是可以接受的,我懷疑它。你可能會發現,人們要求你遵循一條規則,而不是任何其他理由,而不是「這是我們這樣做」。 – 2009-09-12 06:39:18

相關問題