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