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

カレントレコードの移動 - Move系メソッド : ADO入門講座



レコードの操作とは、接続したレコードセットに対してメソッドなどを実行し対象となっているレコードの値を参照したり、削除、更新を行なうことをいいます。 ここでは、対象となっているレコードを前後左右に移動させるテクニックをご紹介します。

カレントレコード

Recordsetオブジェクト内のレコードは、必ず1つのレコードを参照されている状態になっています。この参照されているレコードのことをカレントレコードといいます。

  • レコードセットを取得した直後は、最初(先頭)のレコードがカレントレコードになります。

カレントレコードの移動

レコードセットを用いてテーブルレコードを操作することができます。しかし、この操作は1つのレコードであるカレントレコードのみの操作になりますので、全部、または特定のレコードを操作するにはカレントレコードを移動させる必要があります。

ADOでは、レコードセット内のカレントレコードを移動するのに、以下のメソッドを用います。

Move系メソッドの 構文

各メソッドとも、Recordsetオブジェクト + .(ドット) + Move系のメソッド の組み合わせになります。

メソッド
利用方法
意味
MoveFirst
Recorsdet.MoveFirst
先頭(最初)のレコードに移動
MovePrevious
Recorsdet.MovePrevious
1つ前のレコードに移動
MoveNext
Recorsdet.MoveNext
次のレコードに移動
MoveLast
Recorsdet.MoveLast
最後のレコードに移動

*Recordsetは、開いているRecordsetオブジェクトのことです。

補足
  • これらMove系のメソッドは、BOFまたはEOFプロパティと共に利用されるケースが多いです。
  • これらMove系のメソッドは、レコードの編集、削除といった操作を行なう際にカレントレコードを移動させる手段として利用されます。

売上げ管理テーブルの作成

以下のようなサンプルテーブルを作成します。

売上日 社員名 性別 売上額 職種
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 技能職

Subプロシージャの作成

MoveNextメソッドを用いて、先頭レコードから最後のレコードまでカレントレコードを移動させていきます。

Sub ADORecordsetMoveNext()

    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Set cn = CurrentProject.Connection
    Set rs = New ADODB.Recordset
    
    rs.Open "T_売り上げ管理", cn, adOpenKeyset, adLockOptimistic
    
    Do Until rs.EOF ' --- A
        Debug.Print rs!売上日, rs!社員名, rs!性別, rs!売上額
        rs.MoveNext ' --- B
    Loop
    
    rs.MoveFirst ' --- C
    Debug.Print rs!売上日, rs!社員名, rs!性別, rs!売上額

    rs.Close: Set rs = Nothing
    cn.Close: Set cn = Nothing

End Sub
解説
  1. EOFプロパティを用いて先頭のレコードから最後のレコードまでを対象にします。
  2. MoveNextメソッドを用いて、次のレコードにカレントレコードを移動させていきます。
  3. Loop処理を抜けると、先頭レコードにカレントレコードを移動させます。
実行結果

イミディエイト画面上で実行すると、下記のレコードが表示されます。EOF、FOFプロパティを用いた後はカレントレコードが未定義の状態になるので、MoveFirstメソッドで先頭レコードに移動させています。

関連ページ

2004/09/10

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


カレントレコードの移動 - Move系メソッド : ADO入門講座


 

-Microsoft Access Club-

cPanel あるいは PLESKコントロールパネルをインストールした専用レンタルサーバのディスカウントプランを期間限定で公開しています。
cPanel・PLESKコントロールパネルを備えた専用レンタルサーバ....。