VBA Excel: requete sql qui affiche des résultats groupés

pmichael Messages postés 14 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 4 mai 2004 - 4 mai 2004 à 11:38
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 - 4 mai 2004 à 13:22
Bonjour à tous,

Je voudrais faire une requete sur une base de données me permettant d'afficher sous excel les résultats comme dans l'exemple ci-dessous.

C'est à dire, par exemple, n'afficher qu'une seule fois l'année (cf mon exemple)

Merci bcp à tous!!!

MichaeL

ANNEE CLIENT ADRESSE
2000 A bla bla bla
B bla bla bla
C bla bla bla
D bla bla bla
2001 E bla bla bla
F bla bla bla
G bla bla bla
H bla bla bla
2002 … …
...

3 réponses

pmichael Messages postés 14 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 4 mai 2004
4 mai 2004 à 11:43
oups mon exemple est mal passé...

ANNEE CLIENT ADRESSE
2000 A ...
B ...
C ...
2001 D ...
E ...
2002 F ...
G ...
H ....
I
0
pmichael Messages postés 14 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 4 mai 2004
4 mai 2004 à 11:44
bon dsl ca aligne tjs a gauche mon "tableau" exemple...

j'espere que vous comprenez ce que je veux faire...
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
4 mai 2004 à 13:22
Bonjour,

je te donne une piste (je n'ai pas Access au boulot donc je ne peux pas écrire le code).

Une fois que tu as ouvert ta bd et ton recordset (en supposant que tu écrives ta macro dans excel) :

Il faut que tu gardes une variable qui contiendra l'année que tu initialises à vide.

Dim annee As String
annee = ""
Range("A1").Activate
While not rs.EOF

If Not rs.Fields("annee").Value = annee Then
ActiveCell.Value = rs.Fields("annee").Value
annee = rs.Fields("annee").Value
End If

ActiveCell.Offset(0,1).Value = rs.Fields("client").Value
ActiveCell.Offset(0,2).Value = rs.Fields("adresse").Value

'tu descends d'une ligne pour l'enregistrement suivant
ActiveCell.Offset(1,0).Activate
Wend


Donc en fait, tu parcours tout ton recordset.
En premier lieu tu compares l'année de l'enregistrement en cours avec la variable, si elles sont identiques, alors rien ne se passe, sinon, tu affiches dans la colonne A l'année.
Puis tu affiches les différentes informations.

Fanny
0
Rejoignez-nous