データベースのテーブルから抽出したレコードの集まりをレコードセットといいます。ADOでデータベースのレコードにアクセスするにはまず、レコードセットを作成する必要があります。
Dim レコードセット変数 As New ADODB.Recordset
レコードセット変数.Open テーブル名, _
CurrentProject.Connection[,カーソルタイプ][,ロックタイプ]
以下の例では名簿テーブルよりOpenメソッドによりレコードセットを作成してその後、Closeメソッドで閉じています。
Sub Sample()
Dim rs As New ADODB.Recordset
rs.Open "名簿", CurrentProject.Connection
rs.Close
End Sub
カーソルタイプは目的に応じて設定します。カーソルタイプを指定しない場合は既定値である「前方スクロールカーソル(adOpenForwardOnly)」が設定されます。
カーソルタイプ | 定数 | 機能 |
---|---|---|
adOpenForwardOnly | 0 | [前方スクロールカーソル] 既定値でレコードセットの先頭から末尾に向かって移動することができます。レコードを更新せずに参照するのみなら最も高速です。 |
adOpenKeyset | 1 | [キーセットカーソル] レコードセットの全ての方向に移動することができます。他のユーザーが更新したレコードは参照することができますが、追加、削除したレコードは参照できません。 |
adOpenDynamic | 2 | [動的カーソル] レコードセットの全ての方向に移動することができます。他のユーザーが追加、更新、削除したレコードも参照することができます。 |
adOpenStatic | 3 | [静的カーソル] レコードセットの全ての方向に移動することができます。他のユーザーによる追加、更新、削除は参照することができません。 |
ロックタイプは目的に応じて設定します。ロックタイプを指定しない場合は既定値である「読み取り専用(adLockReadOnly)」が設定されます。
ロックタイプ | 定数 | 機能 |
---|---|---|
adLockReadOnly | 0 | 既定値で読み取り専用です。データの更新・追加・削除はできません。 |
adLockPessimistic | 1 | レコード単位で排他的ロックを行います。編集直後にレコードをロックします。 |
adLockOptimistic | 2 | レコード単位で共有的ロックを行います。Updateメソッドを呼び出した場合にのみ、共有的ロックします。 |
adLockBatchOptimistic | 3 | 複数のレコードをバッチ更新します。 |
ADOとは | レコードセットの作成 | レコードセットの読み取り(Move) | レコードの検索(Find) | レコードの更新(Update) | レコードの追加(AddNew) | レコードの削除(Delete) | レコードの抽出(Filter) | レコードの並び替え(Sort) | SQL文の実行