productprice is a text field.
I tried this just to see what would happen:
strSQL = "SELECT * FROM products WHERE type = ""cd"" ORDER BY (productPrice*100)"
and it worked! It now orders correctly by price, and, miraculously it leaves the decimal point in the right place in the display table.
You raise a question in my head though. Why does a math calculation work on a text field? I would think that it would have to be a numeric field to have math performed on it. Or would it be easier just to accept the fact that it does, and move on? I only ask to understand, and perhaps help someone else with the same problem.