There seems to be some confusion here between finding records and sorting them.
If you perform a find for all records with Public in the Type field and Adult in the Grade field and then sort the records, the other records that are not adult and not public should not be an issue as they are no longer part of the found set. (Think of the found set as a kind of Recordset like you deal with in Access.) Simply choosing a different sort order sorts the records in the found set. It does not change what records are in the found set.
You'll need to look at exactly how you are finding and sorting records as well as how you are storing grade and type information in your records to figure out why this isn't working for you.