A family of Microsoft relational database management systems designed for ease of use.
That Order By clause is redundant because it's the same as the Group By, which also sorts the records.
As I said before, you really need to use the report's Sorting and Grouping to sort the report. Even if the report looks like it's sorted correctly without it, some future, seemingly simple change to the report can throw the query's sorting out the window.
You said you added =CDate(monthyear) to the Sorting and Grouping list, but did you put it at the top of the list? (As far as I can see, that should be the only entry in the list.)
Assuming you get it sorted properly, the only problem is to display the date the way you want. Since the desired date formating is not in the query, you can do it in the report's date text box. Set the text box's expression to =CDate(monthyear) and set its Format property to mmm-yyyy
Side note: the use of the format function in the query is just one of several ways to ignore the day of the month part of the date field. There is no particular significance to using Format instead of any other calculation that generates an equivalent result.
If it would help your understanding of what's going on and maybe make it simpler in the report, you can get the query to use a Date/Time value instead of a formatted text value with any of these:
CDate(Format([DaysDate],"yyyy/mm")) AS MonthYear
DateValue(Format([DaysDate],"yyyy/mm")) AS MonthYear
DateSerial(Year(DaysDate), Month(DaysDate), 1) AS MonthYear
Then the MonthYear field in the report would be a date value and you can format the text box and do Sorting and Grouping on the field without using an expression.