Freitag, 10. Februar 2012

Home
Tipps
Bücher
Software
News / Links
Hilfe
Impressum

Sponsored by
QualityHosting

Tipp/Trick

Last but not first (Access 97, 2000)
Erster oder der letzter Datensatz?

Access stellt keine direkte Funktion zur Verfügung, um innerhalb eines Formulars festzustellen, ob momentan der erste oder der letzte Datensatz angezeigt wird.

Mit Hilfe einer geklonten Datensatzgruppe lässt sich dies jedoch leicht feststellen.

Die VBA-Funktion CheckRecord erwartet beim Aufruf eine Referenz auf ein bestimmtes Formular. Das Ergebnis ist einer der folgenden Werte:

Wert Bedeutung
0 Es wird weder der erste noch der letzte Datensatz angezeigt
-1 Es wird der erste Datensatz angezeigt
1 Es wird der letzte Datensatz angezeigt
-2 Es wird ein neuer Datensatz angezeigt

Die Funktion hat den folgenden Aufbau:

Function CheckRecord(FormObj As Form)

    Dim R As Recordset
    Dim Anzahl As Long

    If FormObj.NewRecord Then
        CheckRecord = -2
        Exit Function
    End If

    Set R = FormObj.RecordsetClone
    R.MoveLast
    Anzahl = R.RecordCount
    R.Bookmark = FormObj.Bookmark

    Select Case R.AbsolutePosition

        Case 0
            CheckRecord = -1
        Case Anzahl - 1
            CheckRecord = 1
        Case Else
            CheckRecord = 0

    End Select

End Function

Zunächst wird mittels der NewRecord-Eigenschaft überprüft, ob ein neuer Datensatz aktiv ist. Wenn dies nicht der Fall ist, wird mit Hilfe der RecordsetClone-Eigenschaft eine Datensatzgruppe erzeugt, die exakt die gleichen Datensätze enthält, die auch dem Formular zugrunde liegen.

Nach Ermittlung der Anzahl der Datensätze wird durch Austausch von Lesezeichen (Bookmark-Eigenschaft) innerhalb der Datensatzgruppe der gleiche Datensatz wie im Formular aktiviert. Die Überprüfung, welcher Datensatz aktiv ist, erfolgt schließlich mit Hilfe der AbsolutePosition-Eigenschaft, die die Nummer des aktuellen Datensatzes enthält.
Wenn beispielsweise der erste Datensatz aktiv ist, besitzt die Eigenschaft den Wert 0; beim letzten Datensatz den Wert Anzahl -1.


Ein Service der TriniDat Software-Entwicklung GmbH - Am Wehrhahn 45 - 40211 Düsseldorf

  Suche
Suche starten
  Service
Leserbrief / Frage zu Access
Kontakt
  NewsLetter
NewLetter bestellen
NewsLetter abbestellen
  Partner-Seiten
HyperLink

www.trinidat.de


HyperLink

www.fulldotnet.de