如何通过VBA连接到Lotus Notes数据库?

时间:2010-01-27 21:58:58

标签: vba lotus-notes

我正在尝试通过Microsoft Access 2003中的VBA连接到Lotus Notes数据库。我的代码如下:

设置nSession = CreateObject(“Notes.NotesSession”)

设置nDatabase = nSession.GetDatabase(“CN = MT_N01 / O =组织名称”,“LossPrevention \ BrchPrVI.nsf”,错误)

我已尝试过服务器名称的变体,但似乎没有任何效果。在Lotus Notes中,它显示为“Server:MT_N01 / Org Name”。我只尝试过“MT_N01”和“MT_N01 / Org Name”,但NotesDatabase变量一直空着。

任何提示?

3 个答案:

答案 0 :(得分:2)

我可能在这里错了,但我认为你应该在使用之前调用会话的Initialize()方法。

在这里查看示例:http://www.ibm.com/developerworks/lotus/library/domino-msnet/index.html

答案 1 :(得分:2)

我认为这种行为是正常的; VBA知道nDatabase是一个变体/对象,但对其内容一无所知。至少这是我在Excel 2003中尝试代码时得到的结果。

尝试从数据库对象返回一些内容,例如nDatabase.ReplicaID应该返回数据库标识字符串。如果数据库未正确加载,您将收到错误。

针对".NET and Lotus Notes Interop."问题发布了许多好的链接。

答案 2 :(得分:0)

除非您还需要使用NotesUIWorkspace类及其子类来操作Notes客户机用户界面,否则您应该使用“Lotus.NotesSession”类而不是“Notes.NotesSession”类。根据@Sagultay的答案,你应该打电话给nSession.Intialize()