This example uses the MoveFirst, MoveLast, MoveNext, and MovePrevious methods to move the record pointer of a Recordset based on the supplied command. The MoveAny procedure is required for this procedure to run.
'BeginMoveFirstVB Public Sub MoveFirstX() Dim rstAuthors As ADODB.Recordset Dim strCnn As String Dim strMessage As String Dim intCommand As Integer ' Open recordset from Authors table. strCnn = "Provider=sqloledb;" & _ "Data Source=MyServer;Initial Catalog=Pubs;User Id=sa;Password=; " Set rstAuthors = New ADODB.Recordset rstAuthors.CursorType = adOpenStatic ' Use client cursor to enable AbsolutePosition property. rstAuthors.CursorLocation = adUseClient rstAuthors.Open "Authors", strCnn, , , adCmdTable ' Show current record information and get user's method choice. Do While True strMessage = "Name: " & rstAuthors!au_fname & " " & _ rstAuthors!au_lname & vbCr & "Record " & _ rstAuthors.AbsolutePosition & " of " & _ rstAuthors.RecordCount & vbCr & vbCr & _ "[1 - MoveFirst, 2 - MoveLast, " & vbCr & _ "3 - MoveNext, 4 - MovePrevious]" intCommand = Val(Left(InputBox(strMessage), 1)) If intCommand < 1 Or intCommand > 4 Then Exit Do ' Call method based on user's input. MoveAny intCommand, rstAuthors Loop rstAuthors.Close End Sub Public Sub MoveAny(intChoice As Integer, _ rstTemp As Recordset) ' Use specified method, trapping for BOF and EOF. Select Case intChoice Case 1 rstTemp.MoveFirst Case 2 rstTemp.MoveLast Case 3 rstTemp.MoveNext If rstTemp.EOF Then MsgBox "Already at end of recordset!" rstTemp.MoveLast End If Case 4 rstTemp.MovePrevious If rstTemp.BOF Then MsgBox "Already at beginning of recordset!" rstTemp.MoveFirst End If End Select End Sub 'EndMoveFirstVB
MoveFirst, MoveLast, MoveNext, and MovePrevious Methods | Recordset Object