Skip to Content
Access Cookbook
book

Access Cookbook

by Andy Baron, Ken Getz, Paul Litwin
February 2002
Intermediate to advanced
720 pages
21h 37m
English
O'Reilly Media, Inc.
Content preview from Access Cookbook

Use a Query to Retrieve a Random Set of Rows

Problem

You need to be able to retrieve a random set of rows from a table or a query so you can identify a random sample for a research study. You can’t find a way to make this happen in the normal query design grid. What’s the trick to getting a random sample of a certain number of rows?

Solution

The solution to this problem is not quite as simple as it might first appear, because of the way Access attempts to optimize the use of function calls in queries. You can call a VBA function to generate a random value for each row, but to ensure that your function runs for each row, and not just once, you need to feed it a value from the row. Once you’ve generated the random numbers, you can sort by that random column and use a Top Values query to select a random group.

In 01-07.MDB, open tblRandom. This table includes 50 rows of data. Your goal is to pull five randomly selected rows for this set of data. To do this, follow these steps:

  1. Import the module basRandom from 01-07.MDB or create your own, including this single function:

    Public Function acbGetRandom(varFld As Variant)
       
       ' Though varFld isn't used, it's the only way to force the query
       ' to call this function for each and every row.
    
       Randomize
       acbGetRandom = Rnd
    End Function
  2. Create a new select query or use an existing one. Add any fields you’re interested in.

  3. Add an extra column, with the following expression replacing the reference to the State field with a single field in your query’s ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

ADO.NET Cookbook

ADO.NET Cookbook

Bill Hamilton
Access Cookbook, 2nd Edition

Access Cookbook, 2nd Edition

Ken Getz, Paul Litwin, Andy Baron
Access Data Analysis Cookbook

Access Data Analysis Cookbook

Ken Bluttman, Wayne S. Freeze
Access Hacks

Access Hacks

Ken Bluttman

Publisher Resources

ISBN: 0596000847Catalog PageErrata