That's right - either build your form based on a query that pre-sorts the records the way you want, or use the Order By property in the form iteself.
If your sorting needs are really complex*, you may need to create a synthetic sorting field in your table and use that.
*real-world example of 'complex' sorting needs: I created a db to maintain a company price list for pet books - they wanted it basically sorted by title (because the titles were formatted as 'Siamese Cat, How To Care For Your' and 'Gerbil, Buying And Choosing A').
But there were exceptions - for example, a book called 'Bunny Guide' had to appear with the books beginning 'Rabbit...'
I added a field 'synthsort' to the table - in most cases, it was completely empty, but in the case of 'Bunny Guide', the field contained 'Rabbit AAAA'.
Then I set my forms, reports, etc to sort on [synthsort & title], so as far as the sorting process was concerned, it was handling a value consisting of 'Rabbit AAAABunnyGuide', which put it at the top of the list, above 'Rabbit, Caring For Your'