I use this method quite a bit in this situation. You can create three queries for your three different sort orders for the report(Report1). They would be identical but the Group By or sorting portion of the SQL would be different. For demonstration purposes let's call them qryCaseIDSort, qryNameSort, and qryZipCodeSort. Then using one report(Report1) change the Record Source property to whichever sort order that you want the report printing in. This would be the code behind a button to perform this process:
Dim db As Database
Set db = CurrentDb
Reports!Report1.RecordSource = "qryCaseID#Sort"
DoCmd.OpenReport "Report1", acViewPreview
Reports!Report1.RecordSource = "qryNameSort"
DoCmd.OpenReport "Report1", acViewPreview
Reports!Report1.RecordSource = "qryZipCodeSort"
DoCmd.OpenReport "Report1", acViewPreview
db.Close
This way you are using one report to display it three different ways. Make sure that in the report you do not use the Grouping and Sorting functions because they will resort whatever sort you have as the recordsource.
Good luck
Bob Scriver