Return a Group of Random Records
To return a group of Random Records from a database. For example, a group of random questions for a quiz/test.
Original Author: Larry Boggs
Code
Return a Group of Random Records
While working on a web based competency-testing application I needed a way to return not just ONE random record but a group of random records. I searched the net high and low for a couple of months
trying to find something that would allow me do this. I eventually hunkered down and came up with my own way of doing this.
First comes the SQL statement to return the set of records you will pick your Random records from:
<%
strConnection="driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/testdb.mdb")
strSQL = "SELECT id FROM tblQuestions"
set objConn = Server.CreateObject("ADODB.Connection")
Set objRst = Server.CreateObject("ADODB.Recordset")
objConn.Open strConnection
set objRst.ActiveConnection = objConn
objRst.LockType = adLockOptimistic
objRst.CursorType = adOpenKeySet
objRst.Open strSQL
%>
Next, set the upper limit of the Randomize function by setting the variable rndMax equal to the RecordCount.
|
Next, set the number of records returned to either the number of questions they asked for or equal to the RecordCount.
|
Now we want to return a Random number. Check if the variable “str1” already contains that number. If so then that number is skipped
and it loops again returning another Random record number. This ensures that NO values are repeated. If not then plug that number into
the “str1” variable so we will know that that number has already been used the next time through the loop. If the random number is not
contained within the “str1” variable then the value of the “ID” field is returned and plugged into the “str” variable. This loops until the
appropriate number of values have been plugged into the “str” variable.
|
Now we have a variable, (str), that contains a comma-delimited list of values from the “ID” field. Now, just reference the comma-
delimited string contained within the “str” variable in your SQL statement:
|
This will return your Random set of records!
Here's the whole thing:
|
I'd be interested in hearing from anyone that builds upon this and/or how they put it to use!
See Ya!
Larry Boggs
Loading Comments ...
Comments
No comments have been added for this post.
You must be logged in to make a comment.