レコードの操作(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プロパティの値によっては、カレントレコードの移動に制限があります。
《サンプル》 次の例では、すべてのレコードにアクセスします。