Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: Access 2013, Office 2013
Verschiebt die Position des aktuellen Datensatzes in einem Recordset-Objekt.
Syntax
Ausdruck . Move(Rows, StartBookmark)
Ausdruck Eine Variable, die ein Recordset-Objekt darstellt.
Parameter
Name |
Erforderlich/optional |
Datentyp |
Beschreibung |
---|---|---|---|
Rows |
Erforderlich |
Long |
Die Anzahl von Zeilen, um die sich die Position verschiebt. Ist rows größer als 0, wird die Position nach vorne verschoben (Richtung Dateiende). Ist rows kleiner als 0, wird die Position nach hinten verschoben (Richtung Dateianfang). |
StartBookmark |
Optional |
Variant |
Ein Wert, der ein Lesezeichen identifiziert. Bei Angabe von startbookmark beginnt die Verschiebung relativ zu diesem Lesezeichen. Andernfalls beginnt Move mit dem aktuellen Datensatz. |
Hinweise
Wenn Sie mithilfe von Move den aktuellen Datensatzzeiger vor dem ersten Datensatz positionieren, wird der aktuelle Datensatzzeiger an den Dateianfang verschoben. Falls das Recordset keine Datensätze enthält und seine BOF -Eigenschaft auf True festgelegt ist, wird ein Fehler zurückgegeben, wenn Sie sich mit dieser Methode rückwärts bewegen.
Wenn Sie mithilfe von Move den aktuellen Datensatzzeiger hinter dem letzten Datensatz positionieren, wird der aktuelle Datensatzzeiger an das Dateiende verschoben. Falls das Recordset keine Datensätze enthält und seine EOF -Eigenschaft auf True festgelegt ist, wird ein Fehler zurückgegeben, wenn Sie sich mit dieser Methode vorwärts bewegen.
Wenn für die BOF- oder die EOF-Eigenschaft der Wert True festgelegt ist und Sie versuchen, die Move-Methode ohne ein zulässiges Lesezeichen zu verwenden, tritt ein Laufzeitfehler auf.
Hinweis
- When you use Move on a forward-only-type Recordset object, the rows argument must be a positive integer and bookmarks aren't allowed. This means you can only move forward.
- Verwenden Sie eine der Methoden MoveFirst, MoveLast, MoveNext oder MovePrevious, um den ersten, letzten, nächsten oder vorherigen Datensatz in einem Recordset zum aktuellen Datensatz zu machen.
- Das Verwenden von Move mit einer Zeilenanzahl gleich 0 ist eine einfache Möglichkeit, die zugrunde liegenden Daten für den aktuellen Datensatz abzurufen. Das ist hilfreich, wenn Sie sicherstellen möchten, dass der aktuelle Datensatz die aktuellsten Daten aus den Basistabellen enthält. Außerdem werden alle anstehenden Edit - oder AddNew -Aufrufe abgebrochen.
Beispiel
In diesem Beispiel wird die Move-Methode verwendet, um den Zeiger für den Datensatz auf der Grundlage der Benutzereingabe zu positionieren.
Sub MoveX()
Dim dbsNorthwind As Database
Dim rstSuppliers As Recordset
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