【Tips】Excel95からノーツのRDOアクセス

1.はじめに
 
 今回はExcel95からノーツDBをRDO(Remote Data Object)でアクセスする方
法を紹介させて戴きます。
 VB4.0やAccess95からも同様です。

  「RDO」というのはVB4.0のエンタープライズ版で提供されるOLE機能でJetエン
ジンを介さずにODBCデータソースをアクセスするための機能です。
 
 それでは「RDO」によるノーツアクセスを試してみましょう。

2.RDOの利用

2.1 ローカルノーツDBのアクセス

【前提条件】

  ・使用データソース名 :R4JTABLE.nsf(ODBCデータソース名です)
  ・DBの絶対パス名   :F:¥PNOTE¥DATA¥R4JTABLE.nsf
  ・検索対象フィールド :「MainTopic」フォームの「Subject,Body」フィールド
  ・検索レコード       :全件

【準備操作】

   [ツール]-[参照設定]で<Microsoft Remote Data Object 1.0>をONにしておき
  ます。
   これをONにしないと「ユーザ定義型が定義されていません」というエラーになり
  ます。

【モジュールの記述】

Sub RDO_to_Notes()
    Dim strConnect As String
    Dim rdoRSet As rdoResultset
    Dim sSQL As String
    Dim objColumn1, objColumn2 As rdoColumn
    Dim wk As Variant
    Dim mrdoEnv As Variant
    Dim mrdoConn As Variant
    rdoEngine.rdoDefaultCursorDriver = rdUseOdbc
    Set mrdoEnv = rdoEngine.rdoCreateEnvironment("", "", "")
    strConnect = "ODBC;DSN=R4JTABLE.nsf;Database=F:¥PNOTES¥DATA¥R4JTABLE.nsf;Server="
    Set mrdoConn = mrdoEnv.OpenConnection("R4JTABLE.nsf", rdDriverNoPrompt, False, strConnect)
    sSQL = "Select Subject,Body from MainTopic"
    Set rdoRSet = mrdoConn.OpenResultset(sSQL, rdOpenForwardOnly, rdConcurReadOnly)
    Set objColumn1 = rdoRSet.rdoColumns.Item(0)
    Set objColumn2 = rdoRSet.rdoColumns.Item(1)
    Do Until rdoRSet.EOF
      wk = objColumn1 & "  " & objColumn2
      MsgBox wk
      rdoRSet.MoveNext
    Loop
    rdoRSet.Close
    Set rdoRSet = Nothing
    MsgBox "完了"
End Sub


2.2 インターネットノーツサーバDBのアクセス

  インターネットノーツサーバDBについては例えば次のように指定します。

  strConnect = "ODBC;DSN=GRPWARE.nsf;Database=FORUM¥GRPWARE.nsf;Server=nandemowarp/nikkeibp"
    
  ローカルDBとの違いは次の2点です。
(1)Databaseでは相対パス名を指定します。
(2)Serverではサーバ名を指定します。

                                                              以上