Когда вы присваиваете строковое значение свойству OrderBy, Access может преобразовать его ... поэтому не будет точно хранить то, что вы ожидаете.Я подозреваю, что в вашем случае Access добавляет пробел после запятой, поэтому, если вы включите это в код своей формы ...
Me.OrderBy = "COU.sigle_cours,COU.num_cours"
Debug.Print "Me.OrderBy='" & Me.OrderBy & "'"
Вы можете увидеть это в окне немедленных действий ...
Me.OrderBy = 'COU.sigle_cours, COU.num_cours'
На самом деле я не уверен, что это объяснение вашей проблемы.Тем не менее, я подозреваю, что вы с большей вероятностью найдете радость, сопоставляя шаблон с текущим значением OrderBy вместо того, чтобы проверять точное совпадение с фиксированной строкой.Попробуйте это так:
Private Sub sigle_cours_Label_Click()
If (Me.OrderBy Like "*DESC*") Then
Me.OrderBy = "COU.sigle_cours, COU.num_cours"
Else
Me.OrderBy = "COU.sigle_cours DESC, COU.num_cours DESC"
End If
Me.OrderByOn = True
End Sub