Voici une solution à adapter à tes besoins, parcticulièrement pour les noms de table et de champs.
Créer une table (je vais l'appeler Resultat) qui contiendra tes données 'mis en ligne'.
Resutat :
ClefSample champText
ValeurSample1 champ réel double
ValeurSample2 champ réel double
ValeurSample3 champ réel double
ValeurSample4 champ réel double
ValeurSample5 champ réel double
Créer une requête pour vider cette table (je vais l'appeler rViderResultat).
delete [Resultat].* from [Resultat];
Créer une requête présentant les données trié dans l'ordre voulu (je vais l'appeler rSample). Un truc du genre
select [Sample].* from [Sample] order by [Sample].[ClefSample];
À mettre dans un module
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
| public sub TraiterSample()
dim ClefSampleRef as string 'Je suppose que c'est du texte
dim cptSample as long
dim db as dao.database:set db=currendb
db.querydefs("rViderResultat").execute
dim rSample as dao.recordset:set r=db.openRecordset("rSample")
dim rResultat as dao.recordset:set r=db.openRecordset("Resultat")
do while not rSample.eof()
if clefSampleRef<>rSample.clefSample then
rResultat.addNew 'Ajoute un nouvel enregsitrement
rResultat![ClefSample]=rSample![ClefSample]
rResultat.update
clefSampleRef=rSample![ClefSample] 'Note la nouvelle clef de référence
cptSample=0 'Reinitialise le compteur de valeur
end if
rResultat.findFirst("[ClefSample]=""" & rSample![ClefSample] & """")
if not rResultat.NoMatch then
rResultat.Edit
cptSample=cptSample+1
rResultat.fields("ValeurSample" & cptSample)=rSample![ValeurSample] 'Recopie la valeur dans le résultat dans la colonne voulue
else
Error 5 'Cas impossible, soit il existait soit on l'a créé
end if
rSample.MoveNext 'Lit le sample suivant
loop
rResultat.close:set rResultat=nothing 'Ferme la source de données, libère la mémoire
rSample.clsoe:set rSample=nothing 'Ferme la source de données, libère la mémoire
set db=nothing 'Libère la mémoire utilisé par l'objet db
end sub |
A+
Partager