レコードの操作(ADO)

 

レコードセット 

レコードセットとは、仮想的にテーブルを開いた表形式イメージのオブジェクトのことです。ADOでは、Recordsetオブジェクトを使って、編集や検索などさまざまな操作を行うことができます。

Recordsetオブジェクトを使うと、レコードセットの性質を指定してテーブルを開けます。レコードセットの性質をカーソルタイプといいます。ADOのRecordsetオブジェクトには4つのカーソルがあります。

動的カーソル ほかのユーザーによる追加、変更、削除を見ることができます。レコードセット内のすべての方向にカレントレコードを移動できまうす。
キーセットカーソル データの検索に使用するカーソルタイプです。
静的カーソル データの検索に使用するレコードセットの静的なコピーを作成します。他のユーザーによる編集はすべて反映されません。
前方スクロールタイプ ほかのユーザーの編集については、静的カーソルと同じです。レコードセットの移動は前方スクロールだけです。レコードセットの先頭から最終方向に向かって移動します。

 

レコードセットを取得するには 

レコードセットを取得するには Openメソッドを使います。

《書式》
  recordset.open source, activeconnection, cursortype, Locktype, options 

recordset Recordsetオブジェクトのオブジェクト変数
sorce テーブル名、クエリ名、SQLステートメント
activeconnection 接続中のデータベースを表すConnectionオブジェクト、または接続情報文字列
cursortype カーソルタイプ
locktype ロックタイプ
options オプション

《サンプル》

次の例では、「得意先マスタ」テーブルのレコードを参照し、先頭レコードの「顧客名」と「都道府県」フィールドの値をイミディエイトウィンドウに出力します。

 

レコードセットの機能を調べるには 

データベースに接続するプロバイダによって、機能をサポートしてない場合があります。RecordsetオブジェクトのSupportsメソッドを使うと、指定したカーソルタイプをサポートしているかどうかを調べることができます。

《書式》
retvalue = recordset.Supports(cursoroptions)

retvalue 戻り値(機能をサポートしているときにはTrueを返す)
recordset 開いているRecordsetオブジェクト
cursoroptions 機能
  adAddNew 新規レコードの追加
  adBookmark 特定レコードへのアクセス
  adDelete レコードの削除
  adFind レコードの検索
  adIndex インデックス
  adMovePrevious 後方へのカレントレコードの移動
  adSeek レコードの検索
  adUpdate  レコードの変更

《サンプル》次の例は、レコードを新規に追加できるかどうかを調べます。


カレントレコードを移動するには 

RecordsetオブジェクトのOpenメソッドを使って取得したレコードセットのうち、参照できるのは1つだけです。これをカレントレコードといいます。レコードセットを作成した直後は、先頭レコードがカレントレコードです。

Recordsetオブジェクトの、MoveFirstメソッド(先頭)、MovePreviousメソッド(1つ前)、MoveNextメソッド(次のレコード)、MoveLastメソッド(最終)を利用すると、レコードセット内でカレントレコードを移動することができます。
※CursorTypeプロパティの値によっては、カレントレコードの移動に制限があります。

《サンプル》 次の例では、すべてのレコードにアクセスします。