Freigeben über


Recordset2.AbsolutePosition-Eigenschaft (DAO)

Gilt für: Access 2013, Office 2013

Legt die relative Datensatznummer des aktuellen Datensatzes eines Recordset2-Objekts fest oder gibt die Nummer zurück.

Syntax

Ausdruck .AbsolutePosition

Ausdruck Eine Variable, die ein Recordset2-Objekt darstellt.

Hinweise

You can use the AbsolutePosition property to position the current record pointer to a specific record based on its ordinal position in a dynaset- or snapshot-type Recordset2 object. You can also determine the current record number by checking the AbsolutePosition property setting.

Da der AbsolutePosition-Eigenschaftswert nullbasiert ist (d. a. die Einstellung 0 verweist auf den ersten Datensatz im Recordset2-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 Recordset2-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 Recordset2-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 weiterhin die empfohlene Methode, um zu einer bestimmten Position zurückzukehren, und sie sind die einzige Möglichkeit, den aktuellen Datensatz in allen Typen von Recordset2-Objekten zu positionieren. Die Position eines Datensatzes ändert sich, wenn ein oder mehr vorangehende Datensätze gelöscht werden. Außerdem gibt es keine Gewähr, dass ein Datensatz die gleiche absolute Position hat, wenn das Recordset2-Objekt neu erstellt wird, da die Reihenfolge einzelner Datensätze innerhalb eines Recordset-Objekts nicht garantiert ist, außer das Objekt wird mit einer SQL-Anweisung unter Verwendung einer ORDER BY-Klausel erstellt.

Hinweis

  • Wenn Sie die AbsolutePosition-Eigenschaft für ein soeben geöffnetes und noch nicht aufgefülltes Recordset2-Objekt auf einen größeren Wert als Null festlegen, wird ein auffangbarer Fehler verursacht. Füllen Sie das Recordset2-Objekt zuerst mit der MoveLast-Methode.
  • Die AbsolutePosition-Eigenschaft ist nicht für Recordset2-Objekte vom Vorwärtstyp oder für Recordset2-Objekte verfügbar, die über Passthrough-Abfragen für odbc-Datenbanken mit microsoft Access-Datenbankmodul verbunden sind.

Beispiel

In diesem Beispiel wird die Verarbeitung einer Schleife, die alle Datensätze eines Recordset2-Objekts durchläuft, mit der AbsolutePosition-Eigenschaft verfolgt.

    Sub AbsolutePositionX() 
     
       Dim dbsNorthwind As Database 
       Dim rstEmployees As Recordset2 
       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