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 :
ce bout de code fait tout bêtement un random et mets a jour 3 colonnes
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
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 :
mais ca fait le meme resultat...
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")
merci d'avance
Partager