[SQL]Problème avec ADO - Order by
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:
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:
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