ACC2000: Find N Records in Random OrderID: Q208855
|
Novice: Requires knowledge of the user interface on single-user computers.
This article shows you how to shuffle the records in a table in random
order. It also shows you how to get <n> records from a table at random (where <n> is the number of records that you want). You can use this method to make sure that the records will never be repeated.
To shuffle the records in a table, create a query based on that table and
all its necessary fields. Add a calculated field that contains the Rnd() function with a positive integer variable parameter. Then, sort by this calculated field. Every time that you evaluate the query, the records will be shuffled.
To get <n> records at random, set the query's TopValues property to the number of records that you want.
The Rnd() function requires a numeric argument to return a random number. If the argument is greater than zero, the next random number in the
sequence is returned. Because of the way queries are optimized, if you
create a calculated field with a numeric argument such as
Expr1:Rnd(1)
the query calculates the Rnd() function once and then repeats the same value throughout the recordset. To avoid the repetition, create a
calculated field with a variable numeric argument. For example, if the
table has an Employee ID field, you can use the following expression as the
variable numeric argument:
Expr1:Rnd([Employee ID]
If the table does not have a numeric field, write an expression such as the
following to calculate a numeric value based on any other field:
Expr1:Rnd(Len([First Name]))
The Rnd() function ignores the expression, but the variable nature of the argument forces the query to evaluate the Rnd() function for every record.
For more information about the TopValues property, click Microsoft Access Help on the
Help menu, type "TopValues" in the Office Assistant or the Answer Wizard,
and then click Search to view the topic.
For additional information about returning a random record, please see the following article in the Microsoft Knowledge Base:
Q210468 ACC2000: Sample Function to Return a Random Record from a Field
Additional query words:
Keywords : kbusage kbdta QryGnrl
Version : WINDOWS:2000
Platform : WINDOWS
Issue type : kbinfo
Last Reviewed: May 13, 1999