Microsoft Access Club >ADO入門講座 >このページ >次頁 < 前項  サイト内検索
 

ADOのレコードセットを開く - Openメソッド : ADO入門講座



RecordsetオブジェクトのOpenメソッドを実行すると、指定したデータベース内にあるテーブル、クエリのレコードデータを参照することができます。勿論、参照だけではなくレコードを更新することも可能です。

Openメソッド

Openメソッドの基本構文は以下のとおりです。

Recordset.Open Source,ActiveConnection,CursorType,LockType,Option
Recordset 開いているRecordsetオブジェクト
Open Openメソッド
Source テーブル名、クエリ名、SQLステートメントを記述します。(省略可)
ActiveConnection 接続しているConnectionオブジェクト名を記述します。(省略可)
CursorType カーソルタイプは、以下の種類があります。カーソルとは、レコードセットをVBAで操作を可能にする機能のことを言います。(省略可)
静的カーソル
adOpenStatic
レコードセットの全ての方向に移動することができます。
他のユーザーが更新したレコードは表示されません。
動的カーソル
adOpenDynamic
レコードセットの全ての方向に移動することができます。
他のユーザーが追加、更新、削除したレコードも参照することができます。
キーセットカーソル
adOpenKeyset
レコードセットの全ての方向に移動することができます。
他のユーザーが更新したレコードは参照することができますが、追加や削除したレコードは参照できません。
前方スクロールタイプ
adOpenForwardOnly
(既定値)
レコードセットの先頭から後方に向かって移動することができます。
レコードに変更を加えるのではなく、参照だけなら最も高速で動作します。
LockType ロックのタイプは以下の種類があります。ロックとは、レコードセットを開いた者以外のユーザーの作業を制御する機能のことを言います。(省略可)

読み取り専用
adLockReadOnly
(既定値)

レコードの編集、削除を行なうことができません。

ペジミスティック
ロッキング
adLockPessimistic

レコードごとに排他ロックを行ないます。
レコードの編集を開始するとロックが始まります。Updateメソッドで編集を保存、CancelUpdateメソッドでキャンセルするまで、他のユーザーはレコードの読み取り、編集を行なうことができません。

オプティミスティック
ロッキング
adLockOptimistic

レコードごとに共有ロックを行ないます。
Updateメソッドでレコードを更新する時に、そのレコードのみをロックします。他のユーザーは同じレコードの読み取り、編集を行なうことができます。

オプティミスティック
バッチ更新
adLockBatchOptimistic

複数のレコードをバッチ更新処理します。
Option Source 引数が Command オブジェクト以外のソースを表す場合にプロバイダが Source 引数を評価する方法を指定します。(省略可)

サンプルテーブル

サンプルテーブルを以下のように作成します。テーブル名は、「T_売り上げ管理」です。

売上日 社員名 性別 売上額 職種
2004/01/23 橘 修平 男性 52100 一般職
2004/02/04 柴田 喜一 男性 654100 技能職
2004/02/04 柴田 喜一 男性 7892510 技能職
2004/03/25 正道 良一 男性 4875210 薬剤師
2004/04/30 田中 邦子 女性 785100 一般職
2004/04/30 田中 邦子 女性 4789210 一般職
2004/07/29 草薙 良子 女性 120310 医師
2004/08/10 田中 幸恵 女性 7986620 一般職
2004/09/30 中村 幸三 男性 477123 技能職

サンプルプロシージャ

T_売り上げ管理テーブルの全レコードをレコードセットに取り込んで、イミディエイト画面に表示させて見ましょう。

Sub ADORecordset()

    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Set cn = CurrentProject.Connection '--- A
    Set rs = New ADODB.Recordset '--- B
    
    rs.Open "T_売り上げ管理", cn '--- C
    
    Debug.Print rs!売上日, rs!社員名, rs!性別, rs!売上額, rs!職種 '--- D
    rs.Close: Set rs = Nothing '--- E
    cn.Close: Set cn = Nothing '--- F

End Sub
解説
  1. カレントデータベースに接続します。
  2. Recordsetオブジェクトに参照を代入します。
  3. T_売り上げ管理テーブルを基にOpenメソッドでレコードセットを開きます。
  4. Printメソッドを用いて、イミディエイト画面に表示します。
  5. オブジェクト変数rsを無効にします。
  6. オブジェクト変数cnを無効にします。
実行結果

イミディエイト画面には、下記のように表示されます。

2004/07/29    草薙 良子    女性           120310       医師
  1. レコードセットは1つのカレントレコードをイミディエイトに表示させます。複数の値を同時に返すことはできません。
  2. Accessシステムが判断した順位で先頭のカレントレコードが返されます。

2004/09/03

ページの先頭へ 前ページへ戻る


ADOのレコードセットを開く - Openメソッド : ADO入門講座


 

-Microsoft Access Club-

年額2,400円でドメインネームサーバーをご用意します。自宅サーバ構築時にご利用下さい。自宅サーバーは応用範囲が広いです。
年額2,400円でドメインネームサーバー。
自社・自宅サーバ構築時にご利用下さい。
やはり、自前サーバーは応用範囲が広いです。