I don't believe you can order by color directly, but you can accomplish the same end result with this>>>>>> Order By TeacherAverage.
You did not post any code, so I'm assuming that you know where to insert the Order By clause. If you have any problems, let me know.
One thing I didn't put in my post is the color coding is based on the total points possible and the teacher averages. So, if a skill has a TotalPointsPossible of 30, then the color coding would be red if the TeacherAverage was between 1 and 10, yellow if the TeacherAverage was between 10.1 and 20, and green if the TeacherAverage was between 20.1 and 30. Then if another skill has a TotalPointsPossible of 20, then the color coding would be red if the TeacherAverage was between 1 and 7, yellow if the TeacherAverae was between 7.1 and 14, and green if the TeacherAverage was between 14.1 and 20. So I can't just sort by the TeacherAverage. I know that somehow I need to assign the background colors with a value and sort by that value, but I just don't know how to go about it or where to put it. Any help would be appreciated.
This is the code that I am using the in the On Format Event:
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
If Me![TotalPointsPossible] = 30 And Me![Average] >= 1 And Me![Average] <= 10 Then
Me.Average.BackColor = vbRed
ElseIf Me![TotalPointsPossible] = 30 And Me![Average] >= 10.1 And Me![Average] <= 20 Then
Me.Average.BackColor = vbYellow
ElseIf Me![TotalPointsPossible] = 30 And Me![Average] >= 20.1 And Me![Average] <= 30 Then
Me.Average.BackColor = vbGreen
ElseIf Me![TotalPointsPossible] = 20 And Me![Average] >= 1 And Me![Average] <= 7 Then
Me.Average.BackColor = vbRed
ElseIf Me![TotalPointsPossible] = 20 And Me![Average] >= 7.1 And Me![Average] <= 14 Then
Me.Average.BackColor = vbYellow
ElseIf Me![TotalPointsPossible] = 20 And Me![Average] >= 14.1 And Me![Average] <= 20 Then
Me.Average.BackColor = vbGreen
Else
Me.Average.BackColor = vbWhite
End If