当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。

テクてく Lotus 技術者 Slack に参加しよう!

2008年7月2日水曜日

データベースの検索2(Serachメソッド)

予告通り、データベースの検索の2回目。
全文索引がついていない場合の検索。
NotesDatabaseクラスのSearchメソッドは検索条件に、Select文を利用できる。@関数も記述できると言うことだ。
また、第二パラメータに日付を指定することで、その日付よりも古い文書は検索対象外にすることもできる。

Sub Click(Source As Button)
    '検索用データベースの変数定義
    Dim session As New NotesSession
    Dim db      As NotesDatabase
    Dim docs    As NotesDocumentCollection
    Dim doc     As NotesDocument
    
    Set db = session.CurrentDatabase
    
    '検索キー変数の定義
    Dim skey As String
    
    'その他の変数
    Dim i As Integer
    Dim stitle As String
    Dim dateTime As New NotesDateTime( "1900/01/01" )
    
    '検索式の入力
    skey = Inputbox( "検索したいノーツ式(@関数も可)を入力してください。", "データベースの検索" )
    
    'データベースの検索
    'skeyが検索文字列、dateTimeより後の日付の文書を検索する
    '0は検索に一致した文書をすべて取得するというオプション
    Set docs = db.Search( skey, dateTime, 0 )
    
    stitle = ""
    For i = 1 To docs.Count
        Set doc = docs.GetNthDocument( i )
        'タイトルをsbjという変数に保存しておく。その際、1タイトルごとに改行する
        'Chr$(13)は改行コードを意味する
        stitle = stitle + Cstr( i ) + "." + doc.Subject( 0 ) + Chr$(13)
    Next
    
    '検索結果の表示
    If docs.Count = 0 Then
        Messagebox "検索文字列に該当する文書はありませんでした。"
    Else
        Messagebox stitle, 0, "検索結果の文書のタイトル一覧"
    End If
End Sub




Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: