I understand what you're going for. But "top 5" has a different meaning than "first 5". The top 5 "values" means find the top 5 values of a field, then provide all the records that have one of those 5 values in that field. If the field only contains 5 distinct values, as in the range 1 to 5, there are only 5 values. So you will get every record.
If you had 1=1, 15=2, 2=3, 1=4, 1=5 then you will display 20 records if you take the top 5 values.
If you had 1=1, 1=2, 1=3, 1=4, 1=5, 10=6, then you will get 5 records if you display the top 5 values.
If you had 1=1, 1=2, 1=3, 1=4, 21=6, then you'll get 25 if you display the top 5 values. 21 one of those records will have the value 6.
You're going to have to find another way to qualify getting the "top 5". For instance, in your example, how is Access supposed to know which 2 out of the 5 records with importance=2 are supposed to be provided? When you figure that out, then what you're really going after is the first 5 records based on your sort. Unfortunately, unless your data is coming from ODBC or SQL, you can't limit to 5 records (MaxRecords).
Here's a link at MSDN that tells more:
http://msdn.microsoft.com/library/de...oTopValues.asp
What I need to understand is how you're retrieving the data and what are the circumstances for which you are limiting to only 5 - for a report/form or simply within your program? If within your program, go ahead and retrieve all of the data and count as you pull off the first 5.
Or is there some reason that you think you have limit the data to the first 5 records? Are you worried about hogging memory?