BOF, EOF Properties Example

This example demonstrates how the BOF and EOF properties let the user move forward and backward through a Recordset.

Sub BOFX()

   Dim dbsNorthwind As Database
   Dim rstCategories As Recordset
   Dim strMessage As String

   Set dbsNorthwind = OpenDatabase("Northwind.mdb")
   Set rstCategories = _
      dbsNorthwind.OpenRecordset("Categories", _
      dbOpenSnapshot)

   With rstCategories
      ' Populate Recordset.
      .MoveLast
      .MoveFirst

      Do While True
         ' Display current record information and get user 
         ' input.
         strMessage = "Category: " & !CategoryName & _
            vbCr & "(record " & (.AbsolutePosition + 1) & _
            " of " & .RecordCount & ")" & vbCr & vbCr & _
            "Enter 1 to go forward, 2 to go backward:"

         ' Move forward or backward and trap for BOF or EOF.
         Select Case InputBox(strMessage)
            Case 1
               .MoveNext
               If .EOF Then
                  MsgBox _
                     "End of the file!" & vbCr & _
                     "Pointer being moved to last record."
                  .MoveLast
               End If

            Case 2
               .MovePrevious
               If .BOF Then
                  MsgBox _
                     "Beginning of the file!" & vbCr & _
                     "Pointer being moved to first record."
                  .MoveFirst
               End If

            Case Else
               Exit Do
         End Select

      Loop

      .Close
   End With

   dbsNorthwind.Close

End Sub