Certaines choses simples en Excel ne le sont pas forcément en Access et vice-versa.
Par exemple calculer la ligne précédente + 1 en Excel est d'une simplicité enfantine mais le faire en Access est ùn peu plus complexe.
Pour en revenir à ton sujet.
Voilà comment je procéderai :
- Créer une table vide qui recevra les résultats (pour la cause appelons la "Resultat") (1 seule fois)
La table Resultat aura donc 8 champs (1 champ Info2, 7 champs Info3). - Vider la table Resultat (à chaque fois)
- Ensuite remplir cette table avec les données voulues (à chaque fois)
- Enfin utiliser une formulaire en mode feuille de données pour afficher le résultat. (À chaque fois)
Requête pour vider la table resultat : rViderResultat
Delete [resultat].* form Resultat
Code pour remplir resultat
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
| public sub RemplirResultat()
dim db as dao.database:set db=cutrrentdb
call db.querydefs("rViderResultat").execute 'Vide la table resultat
dim rSource as dao.recorset:set r=db.openRecorset("rSourceDonneesTriées") 'Mettre à la place de rSourceDonneesTriées le nom de ta requête quii fourni les données
dim rResultat as dao.recordset:set rResultat=db.openRecordset("Resultat",dbopendynaset)
dim Info2Ref as string
dim compteurChampInfo3 as long
do while not rSouce.eof
if rSource![Info2]<>Info2Ref then
'Créer une ligne pour le nouveau résultat
rResultat.addnew
rResultat![Info2]=rSource![info2]
compteurChampInfo3=1
rResultat.update
end if
rResultat.findfirst("Info2=""" & rSource![Info2] & """")
if not rResultat.nomatch() then
'Ajoute le Info3 au résultat
rResultat.edit
rResultat.fields(compteurChampInfo3)=rSource![Info3]
compteurChampInfo3=compteurChampInfo3+1
rResultat.update
else
error 5 'Cas impossible (Error 5 est mon erreur préférée pour signaler un cas impossible)
end if
Info2Ref=rSource![Info2]
rSource.movenext
loop
rResultat.close:set rResultat=nothing
rSource.close:set rSource=nothing
set db=nothing
end sub |
A+
Partager