【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ではサーバ名を指定します。 以上