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