VBA Tipp: Im Formular feststellen, ob erster/letzter Datensatz erreicht ist

Aus DBWiki
Wechseln zu: Navigation, Suche

Problem

Ich möchte mit VBA prüfen, ob in einem Formular der erste bzw. letzte Datensatz erreicht wurde. Falls ja, soll eine MessageBox erscheinen.

Lösung

Die folgender Ereignisprozedur für das BeimAnzeigen/OnCurrent-Ereignis gibt jeweils eine MessageBox aus, wenn das Ende oder der Anfang der Datenquelle des Formulars erreicht ist:

Private Sub Form_Current()
 
   If Not Me.NewRecord Then
      With Me.RecordsetClone
         .Bookmark = Me.Bookmark
         If .AbsolutePosition = 0 Then
            MsgBox "Am Anfang"
         ElseIf .AbsolutePosition = .RecordCount - 1 Then
            MsgBox "Am Ende"
         End If
      End With
   End If
 
End Sub

Alternativ kann man natürlich auch ein Formularfeld zur Anzeige verwenden:

Private Sub Form_Current()
 
   Me.EinFeld = Null
 
   If Not Me.NewRecord Then
      With Me.RecordsetClone
         .Bookmark = Me.Bookmark
         If .AbsolutePosition = 0 Then
            Me.EinFeld = "Am Anfang"
         ElseIf .AbsolutePosition = .RecordCount - 1 Then
            Me.EinFeld = "Am Ende"
         End If
      End With
   Else
      Me.EinFeld = "*Neu*"
   End If
 
End Sub

Siehe auch

  • Beispieldatenbank NaviButtons (selbst erstellte Navigationsschaltflächen)