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
Legt die relative Datensatznummer des aktuellen Datensatzes eines Recordset-Objekts fest oder gibt den betreffenden Wert zurück.
Syntax
Ausdruck .AbsolutePosition
Ausdruck Eine Variable, die ein Recordset-Objekt darstellt.
Bemerkungen
Sie können die AbsolutePosition -Eigenschaft verwenden, um den aktuellen Datensatzzeiger basierend auf seiner Position in einem Recordset -Objekt vom Typ Dynaset oder Momentaufnahme auf einen bestimmten Datensatz zu verschieben. Sie können auch die aktuelle Datensatznummer ermitteln, indem Sie die Einstellung der AbsolutePosition -Eigenschaft überprüfen.
Da der Wert der AbsolutePosition-Eigenschaft nullbasiert ist (d. a. die Einstellung 0 bezieht sich auf den ersten Datensatz im Recordset-Objekt ), können Sie ihn nicht auf einen Wert festlegen, der größer oder gleich der Anzahl der aufgefüllten Datensätze ist. Dies führt zu einem auffangbaren Fehler. Sie können die Anzahl der aufgefüllten Datensätze im Recordset-Objekt ermitteln, indem Sie die Einstellung der RecordCount-Eigenschaft überprüfen. Die maximal zulässige Einstellung für die AbsolutePosition-Eigenschaft ist der Wert der RecordCount-Eigenschaft minus 1.
Wenn kein aktueller Datensatz vorhanden ist, z. B. wenn keine Datensätze im Recordset-Objekt vorhanden sind, gibt AbsolutePosition –1 zurück. Wenn der aktuelle Datensatz gelöscht wird, wird der Wert der AbsolutePosition-Eigenschaft nicht definiert, und ein abfangbarer Fehler tritt auf, wenn darauf verwiesen wird. Neue Datensätze werden am Ende der Sequenz hinzugefügt.
Sie sollten diese Eigenschaft nicht als Ersatz-Datensatznummer verwenden. Lesezeichen sind immer noch die empfohlene Methode, um eine bestimmte Position beizubehalten und zu einer bestimmten Position zurückzukehren, und sind die einzige Möglichkeit, den aktuellen Datensatz über alle Typen von Recordset-Objekten hinweg zu positionieren. Die Position eines Datensatzes ändert sich, wenn ein oder mehr vorangehende Datensätze gelöscht werden. Es gibt auch keine Garantie, dass ein Datensatz die gleiche absolute Position hat, wenn das Recordset-Objekt erneut erstellt wird, da die Reihenfolge der einzelnen Datensätze innerhalb eines Recordset-Objekts nicht garantiert ist, es sei denn, er wird mit einer SQL-Anweisung mithilfe einer ORDER BY-Klausel erstellt.
Hinweis
- Wird die AbsolutePosition-Eigenschaft bei einem neu geöffneten, jedoch leeren Recordset-Objekt auf einen Wert größer als Null festgelegt, tritt ein abfangbarer Fehler auf. Füllen Sie das Recordset-Objekt zuerst mit der MoveLast-Methode auf.
- Die AbsolutePosition-Eigenschaft ist bei Recordset-Objekten des Typs Vorwärts nicht verfügbar. Sie ist auch bei Recordset-Objekten nicht verfügbar, die von Pass-Through-Abfragen zu ODBC-Datenbanken, die mit dem Microsoft Access-Datenbankmodul verbunden sind, geöffnet werden.
Beispiel
Dieses Beispiel verwendet die AbsolutePosition-Eigenschaft, um den Status einer Schleife nachzuverfolgen, in der alle Datensätze eines Recordset-Objekts aufgezählt werden.
Sub AbsolutePositionX()
Dim dbsNorthwind As Database
Dim rstEmployees As Recordset
Dim strMessage As String
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
' AbsolutePosition only works with dynasets or snapshots.
Set rstEmployees = _
dbsNorthwind.OpenRecordset("Employees", _
dbOpenSnapshot)
With rstEmployees
' Populate Recordset.
.MoveLast
.MoveFirst
' Enumerate Recordset.
Do While Not .EOF
' Display current record information. Add 1 to
' AbsolutePosition value because it is zero-based.
strMessage = "Employee: " & !LastName & vbCr & _
"(record " & (.AbsolutePosition + 1) & _
" of " & .RecordCount & ")"
If MsgBox(strMessage, vbOKCancel) = vbCancel _
Then Exit Do
.MoveNext
Loop
.Close
End With
dbsNorthwind.Close
End Sub