例: FindNextName method

1. 次のコードは、$Users ビュー内の、「Smith」が含まれているすべてのエントリを検索し、個人の短縮名とインターネットアドレスのディレクトリナビゲータを作成します。

  Dim s As New notessession
  Dim myname As String
  myname = "Smith"  
  
  Dim myitems() As String
  Redim myitems(1 To 2)  
  
  myitems(1) =  "ShortName"
  myitems(2) =  "InternetAddress"
  
  Set mydir = s.GetDirectory("myserver")
  
  Set mynav = mydir.LookupNames("$Users", myname, myitems, True)
  
  While mynav.NameLocated  
    While mynav.MatchLocated    
      v = mynav.getFirstItemValue
      mynav.FindNextMatch  ' sets MatchLocated T/F
    Wend
'    resume name loop
    mynav.FindNextName  ' sets NameLocated T/F
  Wend
  Msgbox "complete"  

2. このボタンにより、サーバー上の Domino ディレクトリの [ユーザー] ビューにアクセスして、1 つ以上の名前に一致する各文書の [FullName] アイテムと [InternetAddress] アイテムの値を返します。

Dim session As NotesSession
Dim directory As NotesDirectory
Sub Initialize
	Set session = New NotesSession
	Set directory = session.GetDirectory("myserver/Acme")
End Sub

Sub Click(Source As Button)
	Dim nav As NotesDirectoryNavigator
	Dim msg As String
	Dim value As Variant
	Dim names() As String
	Dim nam As String
	Dim pCurrentName As String
	Dim n As Integer
	Dim items( 1 To 2) As String
	items(1) = "FullName"
	items(2) = "InternetAddress"
	nam = Inputbox$("Enter last name")
	If nam = "" Then Exit Sub
	Do
		n = n + 1
		Redim Preserve names(1 To n)
		names(n) = nam
		nam = Inputbox$("Enter another last name")
	Loop While nam <> ""
	On Error Goto errh ' Bad server name causes exception
	Set nav = directory.LookupNames("People", names, items, True)
	On Error Goto 0
	Call nav.FindFirstname
	While nav.CurrentName <> pCurrentName
		If nav.NameLocated Then
			nav.FindFirstMatch
			Do
				value = nav.GetFirstItemValue
				msg = msg & Cstr(value(0)) & | |
				value = nav.GetNextItemValue
				msg = msg & Cstr(value(0)) & |
|
			Loop While nav.FindNextMatch
		End If
		pCurrentName = nav.CurrentName
		Call nav.FindNextName
	Wend
	Msgbox msg,, "People"
	Exit Sub
errh:
	Msgbox Err(),, Error()
	Exit Sub
End Sub