Search code examples
sqlms-accessasp-classicms-access-2010server-side

Random sorting query Access


I'm using this simple query to use a random sorting on a ms-access database:

SELECT pk FROM TABLE ORDER BY Rnd(pk) asc

And it's working fine when i test it with Microsoft Access 2010

However, when i call this query using classic asp, random sorting doesn't work.

Here's my code:

set Rs = Server.CreateObject("ADODB.Recordset")
Rs.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/dbfolder") & "\dbname.mdb"

Rs.Source = "SELECT pk FROM TABLE ORDER BY Rnd(pk) asc"
Rs.CursorType = 3
Rs.CursorLocation = 2
Rs.LockType = 3
Rs.Open()

do while not Rs.eof
    'do stuff
    Rs.Movenext
loop

Solution

  • You just need to "salt" your random generator:

    Rs.Source = "SELECT pk FROM TABLE ORDER BY Rnd(-Timer() * [pk]) Asc"