2009-04-14 8 views
5

OK, il n'y a absolument aucun bon article sur Internet que je puisse trouver pour expliquer ou avoir des exemples de code sur la façon de créer un tableau croisé dynamique en utilisant VBA. J'ai besoin de cela parce que j'ai besoin du tableau croisé dynamique pour montrer des résultats différents selon la sélection de l'utilisateur dans un formulaire. Il y en a pour Excel mais la syntaxe est différente pour Access. Je sais que c'est une question boiteuse, mais si quelqu'un a un exemple de la façon de créer un tableau croisé dynamique dans VBA, j'apprécierais vraiment l'aide.Création de graphique croisé dynamique avec Access 2007 VBA

Répondre

3

Eh bien après environ 3 jours de recherche, je pense que je l'ai trouvé. Pas que quelqu'un se soucie vraiment, cela n'a que 6 vues, dit beaucoup pour l'horreur absolue de VBA. Quoi qu'il en soit, MSDN avait ce caché sous "Office XP" au lieu de sous Access, mais peu importe.

http://msdn.microsoft.com/en-us/library/aa662945.aspx#

+0

Il dit que quelque chose sur la facilité d'utilisation des cartes dans Access, où ai été des problèmes majeurs intégrant MS Graph en 1996 dans mon expérience. Ainsi, de nombreux développeurs d'accès avancés l'évitent. Les tables pivotantes n'existaient pas avant A2003, et je me souviens que les gens avaient des problèmes pour les faire travailler. –

0

J'AVONS créer un formulaire croisé dynamique dans Access 2007. Sur une autre forme que j'ai les commandes de sélection de l'utilisateur et le pivotform comme un sous-formulaire. Ensuite, j'utilise du code comme celui-ci dans le formulaire principal. Le modèle d'objet est le même que OWC11 (Office Web Components 11).

Private Function DisplayChart() 

    With mysubform.Form.ChartSpace 
    .Clear 
    .AllowFiltering = True 
    .HasChartSpaceTitle = True 
    .ChartSpaceTitle.Caption = "test" 
    .DisplayFieldButtons = False 
    .DisplayToolbar = False 

    .ConnectionString = ... 
    .CommandText = "SELECT rSeries, rCategory, rDate, rValue " & _ 
     "FROM myTable" 

    .Charts(0).Type = chChartTypePie 

    .SetData chDimSeriesNames, chDataBound, "rSeries" 
    .SetData chDimCategories, chDataBound, "rCategory" 
    .SetData chDimValues, chDataBound, "rValue" 

    .HasChartSpaceLegend = True 

    End With 

End Function 

les constantes peuvent être dérivées de OWC11

C: \ Program Files \ Common Files \ Microsoft Shared \ Web Components \ 11 \ OWC11.DLL

vous en avez besoin en haut de la module. À ce stade, je ne suis pas sûr de savoir comment les extraire du graphique pivot Access. Faites une référence à OWC11 et définissez le sous-formulaire ChartSpace à une variable déclarée comme OWC11.ChartSpace. Après avoir écrit le changement de code pour taper «Object», et supprimer la référence pour la liaison tardive (et re-test). De cette façon, vos références ne se décolleront pas sur une machine 64 bits lors du déploiement. N'oubliez pas que vous pouvez également laisser l'utilisateur accéder au formulaire de propriétés de graphique croisé dynamique, aux listes de champs et aux zones de dépôt. Ou ils peuvent faire un clic droit sur le graphique pour les atteindre.

(Note - cela est encore une nouvelle découverte pour moi, donc je vais essayer de mettre à jour cette réponse si je trouve des années Gotcha.)

+0

Voici un article de Mike Gunderloy utilisant vba pivotcharts dans A2002 http://msdn.microsoft.com/en-us/library/aa155735%28office.10%29.aspx –

Questions connexes