Sure.
Create a query, and add as many fields from the table as you care about.
Add a computed field by typing something like the following into a blank
cell on the Field row in the query builder:
StringLength: Len([MyTextField])
(replace "MyTextField" with the name of the actual field)
To sort by string length, select either Descending or Ascending in the Sort
row underneath the computed field you just added.
Not sure if by "filter all longer than 30 characters" you mean you only want
to see those that are longer than 30 characters, or you want to eliminate
those that are longer than 30 characters. For the former, put > 30 in the
Criteria row under the computed field you just added. For the former, put <=
30 as the Criteria.
By the way, if you uncheck the "Show" box under the computed field you just
added, you won't see the field length in the query results, but the sorting
and filtering will still work.