Access VBA 入門講座

Homeレコードセットの作成レコードセットの作成

データベースのテーブルから抽出したレコードの集まりをレコードセットといいます。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)」が設定されます。

カーソルタイプ定数機能
adOpenForwardOnly0[前方スクロールカーソル]
既定値でレコードセットの先頭から末尾に向かって移動することができます。レコードを更新せずに参照するのみなら最も高速です。
adOpenKeyset1[キーセットカーソル]
レコードセットの全ての方向に移動することができます。他のユーザーが更新したレコードは参照することができますが、追加、削除したレコードは参照できません。
adOpenDynamic2[動的カーソル]
レコードセットの全ての方向に移動することができます。他のユーザーが追加、更新、削除したレコードも参照することができます。
adOpenStatic3[静的カーソル]
レコードセットの全ての方向に移動することができます。他のユーザーによる追加、更新、削除は参照することができません。

ロックタイプは目的に応じて設定します。ロックタイプを指定しない場合は既定値である「読み取り専用(adLockReadOnly)」が設定されます。

ロックタイプ定数機能
adLockReadOnly0既定値で読み取り専用です。データの更新・追加・削除はできません。
adLockPessimistic1レコード単位で排他的ロックを行います。編集直後にレコードをロックします。
adLockOptimistic2レコード単位で共有的ロックを行います。Updateメソッドを呼び出した場合にのみ、共有的ロックします。
adLockBatchOptimistic3複数のレコードをバッチ更新します。