[access] traitement macro pour tableau croisé

Fermé
Leonardus Messages postés 4 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 12 juillet 2006 - 1 juil. 2006 à 19:16
 leonardus - 16 juil. 2006 à 15:59
Bonjour,

Je suis à la recherche d'une façon de synthétiser un tableau croisé.

En ligne j'ai des numéros de facture (NumFact) et en colonne des familles de produits (FamProd)

à l'intersection, le nombre de Qtées facturée sur une facture donnée.

J'ai déjà eu sur ce forum il y a qques temps une réponse pour aboutir avec une solution excel, maintenant j'aimerais vraiment savoir si c'est possible d'automatiser ça via une macro avec access.

Mon but est de pouvoir répondre à la question suivante : pour chaque famille de produit, combien de fois chacune des autres familles de produits se trouve être factuée en même temps - c'est à dire sur la même facture - (nota, je ne m'intéresse pas vraiment aux Qtées, mais aux occurences)

Je n'ai aucune idée de la façon de programmer sur access, je remercu la bonne âme qui aurait l'idée ou la connaissance recquise.

Merci !
A voir également:

10 réponses

Leonardus Messages postés 4 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 12 juillet 2006
3 juil. 2006 à 22:33
Bonjour,

Je profite de ce rappel pour préciser qu'il y a peut-être une requête en SQL qui fournit simplement ce résultat, auquel cas ça me conviendrait évidemment. Thanks !
0
blux Messages postés 26549 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 27 décembre 2024 3 319
4 juil. 2006 à 09:23
Salut,

tes données sont sous quel format en ACCESS, car il ne manipule pas les tableaux croisés, mais plutôt des tables...
0
Salut,

Oui, c'est une requête croisée dynamique en fait. Et ça ne vient pas de Excel, c'est bien du Access.

Je voudrais aboutir à une matrice où les FamProd qui sont en colonne dans ma première étape décrite ci-dessus (dans la requête croisée dynamique de départ) se retrouvent dans une nouvelle table en colonne ET en ligne, avec le résultat d'occurence par même facture qui apparait en données.

Merci,

A+
0
blux Messages postés 26549 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 27 décembre 2024 3 319
4 juil. 2006 à 16:20
Tu as un nombre fini de FamProd ? Elles sortent toutes dans le même ordre ?

Ce que je conseille :

- tu crées un tableau en mémoire avec n lignes (autant que de FamProd)
- tu lis chaque ligne de ta requête analyse
- pour une ligne tu parcours toutes les colonnes et tu incrémentes un compteur indicé par le rang de la colonne sur laquelle tu es

Ex :

     P1      P2      P3      P4
F1   0       8       1       0
F2   1       1       5       0
F3   7       0       0       0
F4   0       1       0       3


Lecture ligne 1, facture 1 :

On ne fait rien pour ligne 1 (pas de produit P1), mais il y en a d'autres
On fait +1 dans tableau(ligne2, col3) et tableau(ligne3, col2)

Lecture ligne1, facture 2 :

On fait +1 pour tableau(ligne1, col2) et tableau(ligne1, col3), mais aussi +1 pour tableau(ligne2, col1) et tableau(ligne2, col3), et aussi +1 pour tableau(ligne3, col1) et tableau(ligne3, col2)...

Ainsi de suite...

A la fin, il ne reste plus qu'à lire le tableau et on obtient le nombre de fois où les produits se sont retrouvés sur la même facture.

Ca te va, comme début ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Oui, j'ai un nombre fini de famprod, aux alentours de 240 (mais je vais les ramener sans doute à des plus génériques, et j'en aurai alors à peu près 15)

Ta proposition m'as l'air vraiment bien. Est-ce que ça ressemble à une boucle en VBA sur excel par exemple ?
Je suis incapable pour le moment au vu de mes connaissances d'écrire ce code, donc je te suis aveuglément.
Merci pour ta réponse.

A+
0
blux Messages postés 26549 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 27 décembre 2024 3 319
5 juil. 2006 à 08:37
C'est du VBA, donc ça ressemble à du VBA ! ;-)

Seuls les objects manipulés sont différents d'EXCEL : recordset (résultat de requête) et champs au lieu de feuilles, lignes et colonnes
0
Leonardus Messages postés 4 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 12 juillet 2006
8 juil. 2006 à 10:56
Il faut que je te dise, je suis nul en programmation. J'aurais même besoin de plus qu'un coup de main...

Merci d'avance,

A+
0
Leonardus Messages postés 4 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 12 juillet 2006
12 juil. 2006 à 18:02
UP
0
blux Messages postés 26549 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 27 décembre 2024 3 319
13 juil. 2006 à 10:42
Salut,

je te file un bout de code pour afficher les champs résultant d'une requête nommée R1 comprenant 15 champs :
Private Sub Commande1_Click()
Dim I As Byte
Dim Rs
Set Rs = CurrentDb.OpenRecordset("R1")
Rs.MoveFirst
While Not Rs.EOF
    For I = 0 To 14
        MsgBox Rs.Fields(I)
    Next
    Rs.MoveNext
Wend
End Sub

Il ne te reste plus qu'à adapter avec les tests et les incrémentations dans la table résultat.

Je ne pourrai plus t'aider au-delà d'aujourd'hui, je suis en vacances ce soir et il y a peu de chances que je fasse un tour sur le forum...
0
Merci Blux !

Est-ce qu'il y aurait quelqu'un pour reprendre la suite, les tests et les incrémentations ?

Merci d'avance
0