Free Lessons Courses Seminars TechHelp Fast Tips Templates Topic Index Forum ABCD

 Home   Courses   Index   Templates   Seminars   TechHelp   Forums   Help   Contact   Join   Order   Logon More... What's New? Popular Links ------------ Access Courses Access Index Access TechHelp Access Forum Access Troubleshooter Access Developer Network Access AI Bot ------------ Excel Courses Excel Index ------------ Code Vault Testimonials Tip Jar Advice for Consultants

Access: Interesting Sort Problem
By Richard Rost     16 years ago

Q: I read your Q&A regarding sorting text fields that have fields that contain numbers and letters. I have fields where most contain only currency and other fields are only letters. (i.e. \$1,590,000 or "Asset Sale"). How would I sort them so the currency fields are at the top of the report showing HIGHEST sales first, and the Asset Sales appear at the end of the report?

A: Assuming the field type is TEXT, your values should automatically sort so that the currency values are at the top of the list, but they'll be in ASCENDING (low to high) order. Those are the rules of an Alphanumeric sort.

To do what you want, you'll have to play a query shell game. In a nutshell (no pun intended), you could create a CALCULATED QUERY FIELD called SortField.

/tips/access/calculated-query-fields

The SortField could be the value of your numeric/currency value subtracted from some outrageously large number (something bigger than any of your data values):

SortField: IIf(IsNumeric([MyValue]),1000000000-[MyValue],[MyValue])

You'll have to use the IIF and IsNumeric functions so that you're not trying to subtract a text value, which will give you an error:

/tips/access/iif-function

Now you'll have a column of numbers and text, but the numbers will be in reverse order, because when you subtract from a bigger number, you get the difference. So if my original list is:

\$145
\$220
black
white
gold
\$356
\$2

When I run the query, I get:

999999855
999999780
black
white
gold
999999644
999999998

Now if you SORT by this SortField in your query, you will get:

\$356 999999644
\$220, 999999780
\$145, 999999855
\$2, 999999998
black, black
gold, gold
white, white

Notice that the first column is sorted exactly as you wanted.

Start a NEW Conversation

Subscribe to Access: Interesting Sort Problem