Pues creo que para asp y BBDD Access, no hay manera (por más que he leido, tampoco lo he encontrado) de hacerlo directamente desde la consulta SQL (ojo!, si desde la misma aplicación)
Para Access siempre lo he realizado directamente desde el cursor. Por ejemplo
Código:
adoConn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=dondeestelaBBDD"
strSQL = "SELECT * FROM latablaquequieras"
Set RSrandom = Server.CreateObject("ADODB.Recordset")
RSrandom.Open strSQL, adoConn, 1, 2
rndMax = CInt(RSrandom.RecordCount) 'Pasmos el numero de registros totales a la variable rndMax
Randomize Timer 'Realizamos un Randomize para que siempre nos de un valor diferente. Creo que sin el Timer, también funciona ok.
rndNumber = Int(RND * rndMax) 'Con RND escojemos un número con la referencia máxima del número de registros (variable rndMax)
RSrandom.Move rndNumber 'Finalmente nos movemos al registro y hacemos lo que queramos con el
RSrandom.Close
Set RSrandom = Nothing
Set adoConn = Nothing
Este ejemplo funcionará tanto si haces la conexión para Access, MSSQL, MySQL, etc...
Inicialmente el ejemplo lo saqué de
aquí
Saludos!