collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 36
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 1
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 13611
  • stats Beiträge insgesamt: 60959
  • stats Themen insgesamt: 8314
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Pivot Chart per VBA verwalten  (Gelesen 268 mal)

Offline MrMojoRisin

  • Newbie
  • Beiträge: 14
Pivot Chart per VBA verwalten
« am: Juni 19, 2017, 13:15:50 »
Hallo,

ich habe ein Pivot Chart. Das Problem ist, wenn ich eine Datenquelle per vba zuweise, verliert das Chart alle Einstellungen, die ich gemacht habe.

Kann man und wenn ja, wie, das Pivot Chart per VBA verwalten. Das heißt, ich weiße Datenquelle zu und stelle alles, wie es im Moment ist, über vba ein. Habe bisher nichts dazu gefunden bzw. probiert und nix hat geklappt.

Wenn das nicht geht, müsste ich ca. 90 Charts erstellen, die ich alle per invisible Wert ein- bzw. ausblende. Das wäre nicht sehr komfortabel.

Oder Alternativvorschläge?

Hoffe das geht per vba :D

Gruß
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 22894
Re: Pivot Chart per VBA verwalten
« Antwort #1 am: Juni 19, 2017, 13:35:17 »
Hallo,


??

warum willst Du die Datenquelle (welche Eigenschaft meinst Du damit?) verändern?

Was ist das "Pivot Chart" bei Dir?   Ein Form in Pivot-Ansicht oder ein Diagramm auf Basis einer Kreuztabelle?


Wenn sich die Datenherkunft eines Diagramms strukturell ändert (vom vorherigen unterscheidet) , klappt die Chart-Darstellung naturgemäß nicht mehr.

Offline MrMojoRisin

  • Newbie
  • Beiträge: 14
Re: Pivot Chart per VBA verwalten
« Antwort #2 am: Juni 19, 2017, 13:47:21 »
Also gut, dann fang ich mal an, mich zu erklären. Vielleicht hab ich ja nen falschen Ansatz.

Arbeite mit Access 2010. DB ist auf einem SQL Server 2012. Es geht darum Werte über die Zeit aufzutragen, einfach ein Liniendiagramm.

So, die Werte ändern sich aber je nach Auswahl. Sagen wir, ich habe x Arbeitsplätze. Die Auswertung ist jeweils gleich aufgebaut. Ich schalte dann per Auswahl den Arbeitsplatz um, d.h. der Server bzw. die Abfrage, muss mir ja andere Werte liefern. Würde einfach eine Variable an Prozedur an SQL Server mit übergeben, die den Arbeitsplatz repräsentiert, also die ID. Gespeicherte Prozedur liefert mir dann die Ergebnisse. Zuweisen würde ich das dann folgendermaßen:

ME.Form.RecordSource = "EXEC [dbo].[sp_Datenquelle] ArbeitsplatzID
Wenn ich das aber mache, hab ich immer ein leeres Chart. Irgendwie haut das nicht hin. Wenn das prinzipiell gehen soll, dann hab ich wohl nen Fehler drin und muss suchen. Wenn nicht, bin ich für jeden Lösungvorschlag dankbar. Denn bei ca. 30 Arbeitsplätzen und je Arbeitsplatz hab ich 3 unterschiedliche Charts... das würden dann 90 einzelne Charts erstellen müssen.

Danke und Grüße
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 22894
Re: Pivot Chart per VBA verwalten
« Antwort #3 am: Juni 19, 2017, 13:57:25 »
Hallo,


weise mal die Abfrage/Prozedur der Eigenschaft "Rowsource" des Diagramms zu.

Offline MrMojoRisin

  • Newbie
  • Beiträge: 14
Re: Pivot Chart per VBA verwalten
« Antwort #4 am: Juni 19, 2017, 14:33:42 »
Das ist ja das nächste Problem. Ich habe irgendwie gar kein Objekt, bei dem ich RowSource verwenden könnten. Normalerweise mach ich ja immer z.B. Me.Form.Kombinationsfeld.RowSource = Datenquelle. Aber für das Pivot Chart, für das Formular oder was auch immer es ist, kann ich keinen Namen wählen und ich kann es im vba Editor auch nicht auswählen.

Ich habe mal ein Bild in der Entwurfsansicht angehängt.
 

Offline markus888

  • Access-Profi
  • **
  • Beiträge: 152
Re: Pivot Chart per VBA verwalten
« Antwort #5 am: Juni 20, 2017, 15:17:14 »
Gespeicherte Prozedur liefert mir dann die Ergebnisse. Zuweisen würde ich das dann folgendermaßen:

ME.Form.RecordSource = "EXEC [dbo].[sp_Datenquelle] ArbeitsplatzID

Wie kommst du zu dieser Vorgehensweise?
Seit wann kann die Jet mit SP umgehen?

Was ich versuchen würde:
Ändere nichts am Recordsource.
Öffne per VBA ein Recordset.

Entweder ein DAO.Querydef mit der Abfrage erstellen, oder gleich mit ADO - dann kannst du auch die SP verwenden. 
Weise dem Form das Recordset direkt zu.

LG Markus
10 Jahre Access
 

Offline Lachtaube

  • Access-Meister
  • ***
  • Beiträge: 583
Re: Pivot Chart per VBA verwalten
« Antwort #6 am: Juni 20, 2017, 17:09:07 »
Eine Passthrough-Abfrage mit entsprechend eingestellter Connect-Eigenschaft sollte funktionieren. Aber den Parameter musst Du vorher selbst im SQL-Text gegen den Zielwert austauschen.
Grüße von der (⌒▽⌒)
 

Offline MrMojoRisin

  • Newbie
  • Beiträge: 14
Re: Pivot Chart per VBA verwalten
« Antwort #7 am: Juni 21, 2017, 07:31:09 »
Danke euch zwei. Kann ich mir mal anschauen. Problem ist, dass ich das noch nie so gebraucht habe. Wie gesagt, arbeite mit SQL Server und Access adp.

Da geht es schon los, dass bei adp oben das Diagramm Steuerelement fehlt. Ich habe die Möglichkeit ein unter Erstellen-Formulare-Weitere Formulare ein Pivot-Chart auszuwählen. Damit hab ich es auch gemacht. Dann hab ich gestern noch rausgefunden, dass ich ein Ungebundenes Objektfeld einfügen kann und hier dann ein  Microsoft Graph Element. Da komm ich aber auch nicht weiter, da ich da irgendwie keine Datenquelle wählen kann.

Ich verzweifel echt langsam.
 

Offline markus888

  • Access-Profi
  • **
  • Beiträge: 152
Re: Pivot Chart per VBA verwalten
« Antwort #8 am: Juni 21, 2017, 08:27:09 »
Wo hast du gesagt, dass du mit ADP arbeitest?
ADP kann ja grundsätzlich mit SP umgehen, da wird intern ja auch ADO verwendet. Habe da aber keine Erfahrung.

LG Markus
10 Jahre Access
 

Offline MrMojoRisin

  • Newbie
  • Beiträge: 14
Re: Pivot Chart per VBA verwalten
« Antwort #9 am: Juni 21, 2017, 10:43:24 »
Öhm, ja gut, sry, dass mit dem "wie gesagt" war nur so dahin geschrieben.  :-*

Hatte ich anfangs vergessen zu erwähnen. Sry.
 

Offline Lachtaube

  • Access-Meister
  • ***
  • Beiträge: 583
Re: Pivot Chart per VBA verwalten
« Antwort #10 am: Juni 21, 2017, 10:56:29 »
Mein Tipp funktioniert somit auch nicht, weil es keine Passthrough-Abfragen in einer ADP gibt.
Grüße von der (⌒▽⌒)
 

Offline markus888

  • Access-Profi
  • **
  • Beiträge: 152
Re: Pivot Chart per VBA verwalten
« Antwort #11 am: Juni 21, 2017, 11:15:43 »
Grundsätzlich sollte es aber trotzdem so funktionieren wie ich es gepostet habe.

Wie verwendest du eine SP bei einem Formular?
Wie übergibst du die Parameter?
Gibt es da ein eigene Methoden in ADP?
10 Jahre Access
 

Offline MrMojoRisin

  • Newbie
  • Beiträge: 14
Re: Pivot Chart per VBA verwalten
« Antwort #12 am: Juni 21, 2017, 11:36:26 »
Also generell alles recht unkompliziert.

Wenn ich einem Formular ne neue sp oder die Parameter ändern will, dann sage ich einfach:

Me.Form.RecordSource = "EXEC [dbo].[sp]" & Parameter
Oder wenn ich zum Beispiel einem Steuerelement was zuweisen will:

Me.Kombinationsfeld.RowSource = "EXEC....
Ich werde mal mit Recordset was probieren. Da kenne ich mich nicht so aus, muss ich mich mal einlesen. Brauche das bei .adp eigentlich nie. Hoffe jetzt schreien nicht 10 Leute auf *Duck*. Aber habe das nie richtig gelernt, kam an einen Arbeitsplatz, wo halt SQL/ADP verwendet wird. Das meiste musst ich mir selbst beibringen.
 

Offline markus888

  • Access-Profi
  • **
  • Beiträge: 152
Re: Pivot Chart per VBA verwalten
« Antwort #13 am: Juni 21, 2017, 11:49:02 »
@MrMojoRisin
Das Form macht ja nichts anderes. Es erstellt ein Recordset aufgrund der Anweisung im Recordsource.
Also wird es vermutlich nichts bringen, wenn du das RS selbst per Code zuweist.
Testen schadet aber nie. Dann weiß man es für die Zukunft.
In einer normalen Access Anwendung, gibt es dazu aber keine Alternative, da die Anweisung für die SP nicht verarbeitet werden kann.
10 Jahre Access
 

Offline PhilS

  • Administrator
  • Access-Profi
  • *****
  • Beiträge: 198
    • Tipps zu Access, VBA, SQL und Co.
Re: Pivot Chart per VBA verwalten
« Antwort #14 am: Juni 21, 2017, 11:57:34 »
ich habe ein Pivot Chart. Das Problem ist, wenn ich eine Datenquelle per vba zuweise, verliert das Chart alle Einstellungen, die ich gemacht habe.
Ich kann das Problem nachvollziehen. Es geht um ein Form in der PivotChart-Ansicht.

Alternativ InputParameter zu verwenden, funktioniert leider genausowenig.

Man kann über die ChartSpace- bzw. PivotTable-Property des Forms auf dieses Objekt zugreifen.
Es handelt sich dabei um ein Microsoft Office ChartSpace bzw. ...PivotTable-Object aus der Bibliothek Microsoft Office Web Components. Ein Verweis auf die OWC11.DLL bringt die entsprechenden Objekte in den Object Browser.

Ob man darüber die gewünschte Steuerung per VBA erreichen kann, habe ich noch nicht probiert.