<%
Dim DataConn, cmdDC, rsDC
Dim Item
Dim iFieldCount, iLoopVar
Dim strLTorGT, iCriteria, strSortBy, strOrder

' Retrieve QueryString Variables and convert them to a usable form
strLTorGT = Request.QueryString("LTorGT")
Select Case strLTorGT
	Case "LT"
		strLTorGT = "<"
	Case "GT"
		strLTorGT = ">"
	Case Else
		strLTorGT = "<>"
End Select

iCriteria = Request.QueryString("criteria")
If IsNumeric(iCriteria) Then
	iCriteria = CLng(iCriteria)
Else
	iCriteria = 0
End If

strSortBy = Request.QueryString("sortby")
If strSortBy = "" Then strSortBy = "last_name"

strOrder = Request.QueryString("order")
' Finally we've got all our info, now to the cool stuff


' Create and establish data connection
Set DataConn = Server.CreateObject("ADODB.Connection")
DataConn.ConnectionTimeout = 15
DataConn.CommandTimeout = 30

'Access connection code
'DataConn.Open "DBQ=" & Server.MapPath("database.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;MaxBufferSize=8192;Threads=20;", "username", "password"

'Our SQL Server code - use above line to use sample on your server
DataConn.Open "Provider=SQLOLEDB;Data Source=10.2.1.214;" _
	& "Initial Catalog=samples;User Id=samples;Password=password;" _
	& "Connect Timeout=15;Network Library=dbmssocn;"


' Create and link command object to data connection then set attributes and SQL query
Set cmdDC = Server.CreateObject("ADODB.Command")
cmdDC.ActiveConnection = DataConn
cmdDC.CommandText = "SELECT * FROM sample WHERE (sales " & strLTorGT & " " & iCriteria & ") ORDER BY " & strSortBy & strOrder & ";"
cmdDC.CommandType = 1

' Create recordset and retrieve values using command object
Set rsDC = Server.CreateObject("ADODB.Recordset")
' Opening record set with a forward-only cursor (the 0) and in read-only mode (the 1)
rsDC.Open cmdDC, , 0, 1
%>

<p><strong>Results of <%= cmdDC.CommandText %></strong></p>

<table border="1">
	<thead>
	<tr>
<% For Each Item in rsDC.Fields %>
		<th><%= Item.Name %></th>
<% Next %>
	</tr>
	</thead>
<%
' Loop through recordset and display results
If Not rsDC.EOF Then rsDC.MoveFirst

' Get the number of fields and subtract one so our loops start at 0
iFieldCount = rsDC.Fields.Count - 1

' Continue till we get to the end, and while in each <TR> loop through fields
Do While Not rsDC.EOF
%>	<tr>
		<% For iLoopVar = 0 to iFieldCount %>
		<td><%= rsDC.Fields(iLoopVar) %></td>
		<% Next %>
	</tr>
<%
rsDC.MoveNext
Loop
%>
</table>

<%
' Close Data Access Objects and free DB variables
	rsDC.Close
	Set rsDC =  Nothing
	' can't do a "cmdDC.Close" !
	Set cmdDC = Nothing
	DataConn.Close
	Set DataConn = Nothing
%>

<br />

<strong>Build your own query:</strong>
<form action="<%= Request.ServerVariables("URL") %>" method="get">
	Sales:
	<input type="radio" name="LTorGT" value="LT" checked />Less Than
	<input type="radio" name="LTorGT" value="GT" />Greater Than
	<input type="text" name="criteria" value="4500" size="10" />
	<br />
	Sort By:
	<select name="sortby">
		<option value="id">ID</option>
		<option value="last_name">Last Name</option>
		<option value="first_name">First Name</option>
		<option value="sales">Sales</option>
	</select>
	<select name="order">
		<option value="">Ascending
		<option value=" DESC">Descending
	</select>
	<br />
	<input type="submit" value="Run Query" />
</form>
