I experienced some time ago the same problem and solved it like this :
DoCmd.OpenReport "rptAnalyses", acPreview
'give user opportunity to change the order of the report
If MsgBox("Order by risk number?", vbYesNo) = vbYes Then
Reports![rptAnalyses].OrderBy = "risknr,stepnr"
Reports![rptAnalyses].OrderBy = "stepnr,risknr"
Reports![rptAnalyses].OrderByOn = True
This works real fine for me. The problem with your code could be that you try to set the OrderBy property before the report is open.
Try to open the report first and then set the OrderBy property and at last set the OrderByOn to TRUE