bonjour

j'essaye de trier 3 colonnes d'une table "en dur"
pour cela j'ai essayé 2 méthodes mais le order by ne semble ne pas marcher :

voici le code actuel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
  Dim tmpTable As ADODB.Recordset
 
    Set adoConnection = New ADODB.Connection
 
    Set adoRecordset = New ADODB.Recordset
    Set tmpTable = New ADODB.Recordset
 
    adoConnection.Open connectString
    With adoRecordset
 
        .Open "SELECT B1, B2, B3 FROM Resultats", adoConnection, adOpenKeyset, adLockPessimistic
        .MoveFirst
 
        Do Until .EOF
            'adoConnection.Execute ("UPDATE Resultats SET B2 = " & Round(Rnd() * 50) + 1 & ",B3 = " & Round(Rnd() * 1) & " where B1 like '" & .Fields(3) & "'")
            .Fields("B2").Value = Round(Rnd() * 100) + 1
            .Fields("B3").Value = Round(Rnd() * 1)
            .Update
            .MoveNext
        Loop
 
        tmpTable.Open "Select B1, B2, B3 from Resultats order by B2 desc, B1 asc", adoConnection, adOpenForwardOnly, adLockReadOnly
 
        .MoveFirst
 
        tmpTable.MoveFirst
 
 
        Do Until .EOF
 
            .Fields("B1").Value = tmpTable.Fields(0)
            .Fields("B2").Value = tmpTable.Fields(1)
            .Fields("B3").Value = tmpTable.Fields(2)
 
            .Update
            .MoveNext
            tmpTable.MoveNext
        Loop
 
        tmpTable.Close
        .Close
 
    End With
 
    adoConnection.Close
ce bout de code fait tout bêtement un random et mets a jour 3 colonnes
ensuite je fais une copie en mémoire de ces 3 colonnes dans un recordset puis dans un nouveau recordset, je fais un select order by B2(colonne a trier)
et ensuite je mets a jour les colonnes
mais le order by ne marche pas

j'ai aussi essayé de passer par une table temporaire comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Set tmpTable = adoConnection.Execute("Select B1, B2, B3 into tmpTable from Resultats order by B2 desc, B1 asc")
mais ca fait le meme resultat...

merci d'avance