Another way that I have had to do this when I need to filter(add criteria) to a crosstab type of result is to specify each column in a normal select query.
So you would have your first column of Student name.
Second column would be, A: IIf([Grade]="A",[Grade],Null)
Third column would be, B: IIf([Grade]="B",[Grade],Null)
Fourth column would be, C: IIf(Grade]="C",[Grade],Null)
Same for D and F
Then you can have columns for the course and date
This would allow you to have a criteria form where you could use any of the fields above to drive your report. This way your report does not need to be modified when you change criteria.