Partager via


MoveFirst, MoveLast, MoveNext, and MovePrevious Methods Example (VBScript)

This example uses the MoveFirst, MoveLast, MoveNext, and MovePrevious methods to move the record pointer of a Recordset based on the supplied command.

Cut and paste the following code into Notepad or another text editor, and save it as MoveFirstVBS.asp. You can view the result in any browser.

<!-- BeginMoveFirstVBS -->
<%@ Language=VBScript %>
<%' use this meta tag instead of adovbs.inc%>
<!--METADATA TYPE="typelib" uuid="00000205-0000-0010-8000-00AA006D2EA4" -->
<HTML>
<HEAD>
<TITLE>ADO MoveNext, MovePrevious, MoveLast, MoveFirst Methods</TITLE>

<SCRIPT LANGUAGE="VBScript">
<!--
   Sub cmdDown_OnClick
      'Set Values in Form Input Boxes and Submit Form
      Document.form.MoveAction.Value = "MovePrev"
      Document.Form.Submit
   End Sub

   Sub cmdUp_OnClick
      Document.form.MoveAction.Value = "MoveNext"
      Document.Form.Submit
   End Sub

   Sub cmdFirst_OnClick
      Document.form.MoveAction.Value = "MoveFirst"
      Document.Form.Submit
   End Sub

   Sub cmdLast_OnClick
      Document.form.MoveAction.Value = "MoveLast"
      Document.Form.Submit
   End Sub
//-->
</SCRIPT>
</HEAD>

<body bgcolor="white"> 
<h1 align="center">ADO MoveNext, MovePrevious <br> MoveLast & MoveFirst Methods</h1>
<% ' to integrate/test this code replace the 
   ' Data Source value in the Connection string%>
<% 
   ' connection and recordset variables
   Dim Cnxn, strCnxn
   Dim rsEmployees, strSQLEmployees

   ' open connection
    Set Cnxn = Server.CreateObject("ADODB.Connection")
    strCnxn = "Provider='sqloledb';Data Source=" & _
            Request.ServerVariables("SERVER_NAME") & ";" & _
            "Integrated Security='SSPI';Initial Catalog='Northwind';"
    Cnxn.Open strCnxn
      
    ' create and open Recordset using object refs
   Set rsEmployees = Server.CreateObject("ADODB.Recordset")
   strSQLEmployees = "Employees"
   
   rsEmployees.ActiveConnection = Cnxn
   rsEmployees.CursorLocation = adUseClient
   rsEmployees.CursorType = adOpenKeyset
   rsEmployees.LockType = adLockOptimistic
   rsEmployees.Source = strSQLEmployees
   rsEmployees.Open

   rsEmployees.MoveFirst

   If Not IsEmpty(Request.Form("MoveAction")) Then
      strAction = Request.Form("MoveAction")
      varPosition  = Request.Form("Position")
      
      rsEmployees.AbsolutePosition = varPosition
      
      Select Case strAction
      
        Case "MoveNext"
        
         rsEmployees.MoveNext
         If rsEmployees.EOF Then
            rsEmployees.MoveLast
            strMessage = "Can't move beyond the last record."
         End If
        
        Case "MovePrev"
        
         rsEmployees.MovePrevious
         If rsEmployees.BOF Then
            rsEmployees.MoveFirst
            strMessage = "Can't move beyond the first record."
         End If

        Case "MoveLast"
      
         rsEmployees.MoveLast
      
        Case "MoveFirst"
      
         rsEmployees.MoveFirst
      
      End Select
   End If
      
%>

<!-- Display Current Record Number and Recordset Size -->
<h2>Record Number <%=rsEmployees.AbsolutePosition%> of <%=rsEmployees.RecordCount%></H2>
<hr>
<table cellpadding=5 border=0>
<!-- BEGIN column header row for Customer Table-->
<tr>
   <th>Name</th>
   <th>Hire Date</th>
</tr>

<!--Display ADO Data from Customer Table-->
<tr>
  <td><%= rsEmployees("LastName") & ", " %> 
      <%= rsEmployees("FirstName") & " " %></td>
  <td><%= rsEmployees("HireDate")%></td>
</tr> 
<tr>
  <td colspan=2><%=strMessage%></td>
</tr>
</table>

<hr>

<form Name="Form" Method="Post" Action="MoveFirstVbs.asp">
<Input Type=Button Name=cmdDown Value="<">
<Input Type=Button Name=cmdUp Value=">">
<BR>
<H3>Click Direction Arrows to Use MovePrevious or MoveNext</H3>
<Input Type=Button Name=cmdFirst Value="First Record">
<Input Type=Button Name=cmdLast Value="Last Record">


<!-- Use Hidden Form Fields to record values to send to Server -->

<input Type="Hidden" Size="4" Name="MoveAction" Value="Move">
<input Type="Hidden" Size="4" Name="Position" Value="<%= rsEmployees.AbsolutePosition%>">
</form>

<HR>
</BODY>

<%
    ' clean up
    If rsEmployees.State = adStateOpen then
        rsEmployees.Close
    End If
    If Cnxn.State = adStateOpen then
        Cnxn.Close
    End If
%>
</HTML>
<!-- EndMoveFirstVBS -->

See Also

MoveFirst, MoveLast, MoveNext, and MovePrevious Methods | Recordset Object