Enhanced ADO with navigation (ASP)

This code can be found in Chapter 28 of Active Directory, 3rd Edition

Purchase XP Cookbook or Networking Recipes for only $25 plus shipping! While supplies last.

Find out how to download all of the ASP code from this site.

<!--#include file="adovbs.inc" -->

<!-- 
' From the book "Active Directory, Third Edition" 
' ISBN: 0-596-10173-2
-->

<HTML>
<HEAD>
<TITLE>Recordset Navigation using ADSI, ADO and ASP</TITLE>
</HEAD>
   
<BODY>
<%
  ' If the page is opened using the Restart button then reload the page 
  ' from scratch by redirecting to the page itself
  If Request.Form("Restart") = "Restart" Then
    Response.Redirect("rs_demo.asp")
    Response.End
  End If
   
  ' Retrieve the Resultset
  Set objConn = CreateObject("ADODB.Connection")
  objConn.Provider = "ADSDSOObject"
  objConn.Open "", "mycorp\administrator", "My-admin-password!"
   
  Set objRS = objConn.Execute _
    ("<LDAP://dc=mycorp,dc=com>;(&(objectCategory=person)(objectClass=User))" _
                                                      & ";ADsPath;SubTree")
   
  If Request.Form("IsFilterOn") = "FALSE" Then
    bolFilter = "FALSE"
  ElseIf Request.Form("IsFilterOn") = "TRUE" Then
    objRS.Filter = CStr(Request.Form("FilterText"))
    bolFilter = "TRUE"
  Else
    bolFilter = "FALSE"
  End If
   
  If Request.Form("Next") <> "" Then
    objRS.AbsolutePosition = Request.Form("AbsPosition") + 1
  ElseIf Request.Form("Previous") <> "" Then
    objRS.AbsolutePosition = Request.Form("AbsPosition") - 1
  ElseIf Request.Form("First") <> "" Then
    objRS.MoveFirst
  ElseIf Request.Form("Last") <> "" Then
    objRS.MoveLast
  ElseIf Request.Form("SetFilter") <> "" Then
    objRS.Filter = CStr(Request.Form("FilterText"))
    bolFilter = "TRUE"
  ElseIf Request.Form("EraseFilter") <> "" Then
    objRS.Filter = adFilterNone
    bolFilter = "FALSE"
  End If
   
  ' If no results were returned, then end the session
  ' but provide a restart button
  If objRS.EOF Then
    Response.Write("No users found!")
%>
    <FORM METHOD="POST" ACTION="rs_demo.asp">
      <INPUT TYPE="SUBMIT" NAME="Restart" VALUE="Restart">
    </FORM>
<%
    objConn.Close
    Set objRS = Nothing
    Set objConn = Nothing
    Response.End
  End If
%>
   
<! Start the main page>
This is user number <% = objRS.AbsolutePosition %>.
There are <% = objRS.RecordCount %> users in the recordset.<P>
   
<% 
  If CStr(Request.Form("FilterText")) = "" Then 
    strFilter = "Name LIKE 'a*'"
  Else 
    strFilter = CStr(Request.Form("FilterText"))
  End If
  strUsername = "mycorp\administrator"
  strPassword = "My-admin-password!"
   
  Set objNamespace = GetObject("LDAP:")
  Set objUser = objNamespace.OpenDSObject(objRS("ADsPath"), _
    strUsername,strPassword,0)
   
  Response.Write "Name: <B>" & objUser.Name & "</B><P>"
  Response.Write "ADsPath: <B>" & objUser.ADsPath & "</B><P>"
  Response.Write "Description: <B>" & objUser.Description & "</B><P>"
  Response.Write "Class: <B>" & objUser.Schema & "</B><P>"
%>
   
<FORM METHOD="POST" ACTION="rs_demo.asp">
  <INPUT TYPE="SUBMIT" NAME="Restart" VALUE="Restart">
  <INPUT TYPE="HIDDEN" NAME="AbsPosition" 
    VALUE="<% = objRS.AbsolutePosition %>">
  <INPUT TYPE="HIDDEN" NAME="IsFilterOn" VALUE="<% = bolFilter %>">
   
  <% If objRS.AbsolutePosition = objRS.RecordCount Then %>
    <INPUT TYPE="SUBMIT" NAME="Previous" VALUE="Previous">
  <% ElseIf objRS.AbsolutePosition = 1 Then %>
    <INPUT TYPE="SUBMIT" NAME="Next" VALUE="Next">
  <% Else %>
    <INPUT TYPE="SUBMIT" NAME="Previous" VALUE="Previous">
    <INPUT TYPE="SUBMIT" NAME="Next" VALUE="Next">
  <% End If %>
   
  <INPUT TYPE="SUBMIT" NAME="First" VALUE="Move First">
  <INPUT TYPE="SUBMIT" NAME="Last" VALUE="Move Last">
  <P>
  <INPUT TYPE="TEXT" NAME="FilterText" VALUE= "<% = strFilter %>">
  <INPUT TYPE="SUBMIT" NAME="SetFilter" VALUE="Set Filter!">
  <INPUT TYPE="SUBMIT" NAME="EraseFilter" VALUE="Erase Filter!">
</FORM>
   
</BODY>
</HTML>

This code has been viewed 2334 times.

New from the creators of TechTasks.com: StatSheet.com