2011-05-23 167 views
1

我有本地機器(即開發)和虛擬機(即生產)。在2之間,我使用Access,Excel和Lotus Notes開發並維護了一些自動報告。這段代碼爲什麼會中斷?

最近,我接到了一份與現有報告非常相似的新報告。所以,我只是將適當的Access文件從生產版本複製回開發版本來重寫它。它失敗了。對於一些試驗&錯誤,我已經將範圍縮小到這個片段:

Option Compare Database 
Option Explicit 
Global NtSession As lotus.NotesSession 
Sub Main() 
    Set NtSession = CreateObject("Notes.NotesSession") 
    ... 
End Sub 

同樣,這個代碼在製作精細,但當我嘗試在我的發展運行,現在休息(我得到一個「類型不匹配「錯誤的CreateObject)。最簡單的方法就是在Production中開發我的報告,但是這種方式無法達到目的,更不用說它曾經在我的本地機器上工作的奇怪現象,而現在卻沒有。那麼,爲什麼這會在我的本地機器(即Dev)上拋出錯誤,而不是在虛擬(即生產)中?

+0

您是否嘗試重置參考(取消選擇參考並再次選擇)? – Jacob 2011-05-23 15:40:01

回答

1

根據Ken的回覆,我建議您決定是要遲到還是早期綁定。

Global NtSession As Object 
Set NtSession = CreateObject("Lotus.NotesSession") 

Global NtSession As lotus.NotesSession 
Set NtSession = New Lotus.NotesSession 

我只是不明白混合兩者的值,如

Global NtSession As lotus.NotesSession 
Set NtSession = CreateObject("Lotus.NotesSession") 
+0

這很有道理(儘管它會在下一行中引發錯誤)。但我的問題是,爲什麼它只能在一臺機器上運行,而不能在另一臺機器上運行?請記住,它曾經在兩方面都工作得很好。 – PowerUser 2011-05-24 14:16:33

+0

在你的第二個建議中,它抱怨說我不能以這種方式使用「新建」。 – PowerUser 2011-05-24 14:18:34

0

檢查COM對象nlsxbe.dll已正確安裝和註冊上你的開發機器。也許註銷並重新註冊它只是爲了確保。做一個關於「nlsxbe.dll註冊」的Google搜索,以獲得更多與該模塊有關的問題的提示,該模塊應作爲Notes客戶端安裝的一部分安裝(但可能未註冊)。