HOME > 即効テクニック > AccessVBA > データ操作 > カレントレコードの位置を取得する

即効テクニック

データ操作

カレントレコードの位置を取得する

(Access 2000/2002/2003)
●概要●
構文  expression.AbsolutePosition		取得/設定
      expression.PercentPosition		取得/設定

設定項目        内容
expression	Recordsetオブジェクト[省略不可]

ダイナセットタイプまたはスナップショットタイプのRecordsetオブジェクトのカレントレコードの位置を設定または取得します。AbsolutePositionプロパティの値は、最初のレコード位置を0として数えた番号で、長整数型になります。PercetnPositionプロパティの値は、全レコード数を100として計算したパーセンテージで、単精度浮動小数点数型です。
次のコードは、「商品テーブル」から特定のレコードを検索して、そのレコードの位置を表示するものです。

●設定●
動作確認をするためには、Visual Basic Editorのメニューから[ツール]→[参照設定]コマンドを選択し、[参照設定]ダイアログボックスで「Microsoft DAO 3.6 Object Library」にチェックを入れてください。

●サンプル●
Sub RecordPositionSample()
    Dim myRS As DAO.Recordset
    Dim myStr As String
    '[商品テーブル]を商品単価の降順に並べ替えたSQLステートメントを作成
    myStr = "SELECT 商品テーブル.* FROM 商品テーブル" & _
            " ORDER BY 商品テーブル.商品単価 DESC;"
    'SQLステートメントをもとにRecordsetオブジェクトを作成
    Set myRS = CurrentDb.OpenRecordset(myStr)
    '[商品名]が「チェア」である最初のレコードを検索
    myRS.FindFirst "商品名 = 'チェア'"
    'レコードが検索された場合、絶対位置と相対位置を表示
    If Not myRS.NoMatch Then
        MsgBox "絶対位置 " & myRS.AbsolutePosition & vbCr & _
               "相対位置 " & myRS.PercentPosition
    End If
    myRS.Close
End Sub