Question

OK il n'y a absolument pas de bons articles sur Internet que je peux constater que expliquer ou avoir des exemples de code sur la façon de créer un tableau croisé dynamique en utilisant VBA. J'ai besoin parce que je dois le tableau croisé dynamique pour afficher des résultats différents selon le choix de l'utilisateur dans un formulaire. Il y en a pour Excel, mais la syntaxe est différente pour Access. Je sais que cela est une question boiteux, mais si quelqu'un a un exemple de la façon de créer un tableau croisé dynamique dans VBA Je voudrais vraiment apprécier l'aide.

Était-ce utile?

La solution

Eh bien, après 3 jours de recherches, je pense que je l'ai trouvé. Non pas que quelqu'un se soucie vraiment, cela a seulement comme 6 vues, dit beaucoup pour horribleness totale de VBA. Quoi qu'il en soit, MSDN a ce caché sous "Office XP" au lieu de sous Access, mais peu importe.

http://msdn.microsoft.com/en-us/ bibliothèque / aa662945.aspx #

Autres conseils

J'ai 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. Puis-je utiliser le code comme celui-ci sous la forme principale. 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 avez besoin au sommet du module. A ce stade, je ne sais pas comment les extraire de l'PivotChart d'accès. Faire référence à OWC11 et définir le sous-formulaire ChartSpace à une variable déclarée comme OWC11.ChartSpace. Après avoir écrit le changement de code à taper « objet », et supprimer la référence pour la liaison tardive (et re-test). De cette façon, vos refs ne décollée sur une machine 64 bits lors du déploiement.

Private Enum ChartConstants
  chDimSeriesNames = 0
  chDimCategories = 1
  chDimValues = 2
  chDataBound = 0
  chAxisPositionValue = -8
  chAxisPositionCategory = -7
  chChartTypePie = 18
End Enum

Rappelez-vous que vous pouvez également laisser l'utilisateur a accès aux propriétés, sous forme de graphique croisé dynamique listes de champs et des zones de dépôt. Ou ils peuvent cliquer droit sur le graphique pour arriver à eux.

(Note - c'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.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top