Recordset2.Move メソッド (DAO)
適用先: Access 2013、Office 2013
現在のレコードの位置を [Recordset] オブジェクトに移動します。
構文
式 。Move(Rows, StartBookmark)
式Recordset2 オブジェクトを表す変数。
パラメーター
名前 |
必須かどうか |
データ型 |
説明 |
---|---|---|---|
Rows |
必須 |
長整数型 (Long) |
位置を移動する行数。 rows が 0 より大きい場合は、前方 (ファイルの末尾) に向かって位置が移動します。 rows が 0 より小さい場合は、後方 (ファイルの先頭) に向かって位置が移動します。 |
StartBookmark |
省略可能 |
バリアント型 (Variant) |
ブックマークを示す値。 startbookmark を指定した場合、このブックマークが移動の開始位置となります。 それ以外の場合は、カレント レコードが移動の開始位置となります。 |
注釈
Move を使用して、カレント レコードを参照するポインターを最初のレコードよりも前に設定すると、カレント レコードを参照するポインターはファイルの先頭に移動します。 Recordset にレコードが含まれておらず、 BOF プロパティが True の場合は、このメソッドを使用して後方に移動しようとするとエラーが発生します。
Move を使用して、カレント レコードを参照するポインターを最後のレコードよりも後ろに設定すると、カレント レコードを参照するポインターはファイルの末尾に移動します。 Recordset にレコードが含まれておらず、 EOF プロパティが True の場合は、このメソッドを使用して前方に移動しようとするとエラーが発生します。
BOF プロパティまたは EOF プロパティが True の場合に、有効なブックマークを指定せずに Move メソッドを使用しようとすると、実行時エラーが発生します。
注:
- 前方スクロール タイプの Recordset オブジェクトで Move を使用するときは、引数 rows に正の整数を指定する必要があり、ブックマークは指定できません。 つまり、移動できる方向は前方のみです。
- Recordset の最初のレコード、最後のレコード、次のレコード、または前のレコードをカレント レコードにするには、 MoveFirst、 MoveLast、 MoveNext、または MovePrevious の各メソッドを使用します。
- rows に 0 を指定して Move を使用すると、カレント レコードの基になるデータを簡単に取得できます。 この方法は、カレント レコードにベース テーブルの最新のデータが格納されていることを確認するときに便利です。 またこの方法を使用すると、 Edit または AddNew に対する保留中の呼び出しが取り消されます。
例
この例では、Move メソッドを使用して、ユーザーの入力に基づいてレコード ポインターを配置します。
Sub MoveX()
Dim dbsNorthwind As Database
Dim rstSuppliers As Recordset2
Dim varBookmark As Variant
Dim strCommand As String
Dim lngMove As Long
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
Set rstSuppliers = _
dbsNorthwind.OpenRecordset("SELECT CompanyName, " & _
"City, Country FROM Suppliers ORDER BY CompanyName", _
dbOpenDynaset)
With rstSuppliers
' Populate recordset.
.MoveLast
.MoveFirst
Do While True
' Display information about current record and ask
' how many records to move.
strCommand = InputBox( _
"Record " & (.AbsolutePosition + 1) & " of " & _
.RecordCount & vbCr & "Company: " & _
!CompanyName & vbCr & "Location: " & !City & _
", " & !Country & vbCr & vbCr & _
"Enter number of records to Move " & _
"(positive or negative).")
If strCommand = "" Then Exit Do
' Store bookmark in case the Move doesn't work.
varBookmark = .Bookmark
' Move method requires parameter of data type Long.
lngMove = CLng(strCommand)
.Move lngMove
' Trap for BOF or EOF.
If .BOF Then
MsgBox "Too far backward! " & _
"Returning to current record."
.Bookmark = varBookmark
End If
If .EOF Then
MsgBox "Too far forward! " & _
"Returning to current record."
.Bookmark = varBookmark
End If
Loop
.Close
End With
dbsNorthwind.Close
End Sub