1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
Option Compare Database
Option Explicit
Dim Order$, Tri(4)
Private Sub Cocher1_AfterUpdate()
' La case à cocher 1 s'appelle Cocher1
If Me.Cocher1.Value = False Then
' Tester si existe déjà
If InStr(1, Order$, Tri(1)) > 0 Then
'Si existe dans les valeurs ordonnées, alors la supprimée
Order$ = SupChaine(Order$, Tri(1))
End If
Else
' Ajoute le champ de tri dans l'ordre de coche
Order$ = Order$ & ", " & Tri(1)
End If
' Supprime la virgule en début ou en fin de critère
If Left(Order$, 1) = "," Then Order$ = Mid(Order$, 2, Len(Order$) - 1)
If Right(Order$, 1) = "," Then Order$ = Left(Order$, Len(Order$) - 1)
Me.OrderBy = Order$
Me.Requery
End Sub
Private Sub Cocher2_AfterUpdate()
If Me.Cocher2.Value = False Then
' Tester si existe déjà
If InStr(1, Order$, Tri(2)) > 0 Then
'Si existe dans les valeurs ordonnées, alors la supprimée
Order$ = SupChaine(Order$, Tri(2))
End If
Else
' Ajoute le champ de tri dans l'ordre de coche
Order$ = Order$ & ", " & Tri(2)
End If
' Supprime la virgule en début ou en fin de critère
If Left(Order$, 1) = "," Then Order$ = Mid(Order$, 2, Len(Order$) - 1)
If Right(Order$, 1) = "," Then Order$ = Left(Order$, Len(Order$) - 1)
Me.OrderBy = Order$
Me.Requery
End Sub
Private Sub Cocher3_AfterUpdate()
If Me.Cocher3.Value = False Then
' Tester si existe déjà
If InStr(1, Order$, Tri(3)) > 0 Then
'Si existe dans les valeurs ordonnées, alors la supprimée
Order$ = SupChaine(Order$, Tri(3))
End If
Else
' Ajoute le champ de tri dans l'ordre de coche
Order$ = Order$ & ", " & Tri(3)
End If
' Supprime la virgule en début ou en fin de critère
If Left(Order$, 1) = "," Then Order$ = Mid(Order$, 2, Len(Order$) - 1)
If Right(Order$, 1) = "," Then Order$ = Left(Order$, Len(Order$) - 1)
Me.OrderBy = Order$
Me.Requery
End Sub
Private Sub Cocher4_AfterUpdate()
If Me.Cocher4.Value = False Then
' Tester si existe déjà
If InStr(1, Order$, Tri(4)) > 0 Then
'Si existe dans les valeurs ordonnées, alors la supprimée
Order$ = SupChaine(Order$, Tri(4))
End If
Else
' Ajoute le champ de tri dans l'ordre de coche
Order$ = Order$ & ", " & Tri(4)
End If
' Supprime la virgule en début ou en fin de critère
If Left(Order$, 1) = "," Then Order$ = Mid(Order$, 2, Len(Order$) - 1)
If Right(Order$, 1) = "," Then Order$ = Left(Order$, Len(Order$) - 1)
Me.OrderBy = Order$
Me.Requery
End Sub
Private Sub Form_Open(Cancel As Integer)
' Définition des champs pour le tri
Tri(1) = "[Nom projet]"
Tri(2) = "[Année]"
Tri(3) = "[Secteur]"
Tri(4) = "[Chiffre d'affaires]"
Order$ = ""
End Sub
Function SupChaine(Chaine, TexteASup) As String
Dim StringTmp As String, Pointer As Integer
If IsNull(Chaine) Then
SupChaine = False
Else
StringTmp = Chaine
Pointer = InStr(1, StringTmp, TexteASup)
Do While Pointer > 0
StringTmp = Left(StringTmp, Pointer - 1) & Mid(StringTmp, Pointer + Len(TexteASup))
Pointer = InStr(Pointer, StringTmp, TexteASup)
Loop
SupChaine = StringTmp
End If
End Function |
Partager