VBA Tipp: Im Endlosformular zu den letzten x Zeilen springen

Aus DBWiki
Wechseln zu: Navigation, Suche

Anforderung

Ich möchte beim Öffnen eines Endlosformulars, ohne zu scrollen, gleich ans Ende der Liste springen, um nur die letzten x Datensätze sehen zu können.

Lösung

Das geht mit der folgenden Prozedur, die in einem globalen Modul hinterlegt wird.

  • Form: Verweis auf eine geöffnete Formular-Instanz
  • AnzahlZeilen: Anzahl der Zeilen, die angezeigt werden sollen (muss > 0 sein)
Public Sub ZeilenZurueck(Form As Form, ByVal AnzahlZeilen As Long)
 
   'Quelle: www.dbwiki.net oder www.dbwiki.de
 
   If AnzahlZeilen < 1 Then Exit Sub
 
   With Form.RecordsetClone
      If .RecordCount Then
         .MoveLast
         If .RecordCount > AnzahlZeilen Then
            .Move -AnzahlZeilen + 1
            Form.Bookmark = .Bookmark
         End If
      End If
   End With
End Sub

Aufruf

Der Aufruf der Prozedur kann z.B. im Form_Open- oder Form_Load-Ereignis des Endlosformulars erfolgen. Im folgenden Beispiel werden die letzten 10 Zeilen angezeigt:

Private Sub Form_Open(Cancel As Integer)
 
   Call ZeilenZurueck(Me, 10)
 
End Sub
Wiki hinweis.png

Anmerkung: Die Methode funktioniert auch mit einem Formular in Einzel- oder Datenblattansicht.