Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Filterinformationen in Pivotchart

17 views
Skip to first unread message

Martin Hockemeyer

unread,
May 23, 2007, 11:56:47 PM5/23/07
to
Hallo zusammen,

ich habe Formular das in Pivotchartansicht geöffnet wird und mehrere
Informationen in einem Kreisdiagramm darstellt.

Die im Kreisdiagramm dargestellten Infos werden farblich unterschieden
und anhand einer Legende erklärt.

Die Datensätze kann ich durch die Pivoteigene Filterfunktion beliebig
einschränken (in meinem Fall nach Datum - Monat,Quartal,Jahr)

Wenn ich mit dem Mauszeiger über das Steuerelement zum Einschränken
der Datensätze und aktivieren der Filterfunktion zeige, wird nach
kurzer Zeit ein Popupinformationsfeld mit den ausgewählten bzw.
eingeschränkten DS angezeigt.

Meine Frage:
(Wie) ist es möglich die angezeigten Information in dem
Popupinformationsfeld bzw. die aktuellen Filterinformationen des
Pivotschart auszuwerten und z.B. einer Variable zu übergeben?

Vielen Dank für Eure Hilfe
LG
Martin

Mark Doerbandt

unread,
May 24, 2007, 6:24:48 AM5/24/07
to
Hallo, Martin,

Martin Hockemeyer:

> Wenn ich mit dem Mauszeiger über das Steuerelement zum Einschränken
> der Datensätze und aktivieren der Filterfunktion zeige, wird nach
> kurzer Zeit ein Popupinformationsfeld mit den ausgewählten bzw.
> eingeschränkten DS angezeigt.
>
> Meine Frage:
> (Wie) ist es möglich die angezeigten Information in dem
> Popupinformationsfeld bzw. die aktuellen Filterinformationen des
> Pivotschart auszuwerten und z.B. einer Variable zu übergeben?

das sollte ueber

Me.ChartSpace.Charts(0).SeriesCollection.PivotAxis.SourceAxis.FieldSets(0).Fields(0).ExcludedMembers

bzw. .IncludedMembers gehen. Die Indizes musst Du natuerlich anpassen.

Gruss - Mark

--
Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beiträge senden.

Martin Hockemeyer

unread,
May 25, 2007, 2:11:05 AM5/25/07
to
Hallo,

ich hab noch was vergessen. Wenn ich Inhalte zähle bekomme ich
folgende Ergebnisse:

Me.Hauptmenu_UFO.Form.ChartSpace.Charts(0).count 'liefert 1
Me.Hauptmenu_UFO.Form.ChartSpace.Charts(0)..SeriesCollection.PivotAxis.SourceAxis.FieldSets.count
'liefert 0

Also evtl. gehe ich hier auch einfach den falschen weg??
Ich bin etwas ratlos. Was evtl. auch helfen würde wäre ein Tip für
eine Referenz zu diesem Thema.
Der Objektkatalog im VBA-Editor hilft mir auch nicht gerade weiter um
herauszufinden welche Befehle ich wie in welcher Kombination ausführen
kann um welches Ergebniss zu bekommen. Also z.B. auch ein Buchtipp
o.ä. mit den Erklärungen der jeweiligen Eigenschaften.

Danke nochmal
Martin

Martin Hockemeyer

unread,
May 25, 2007, 2:22:02 AM5/25/07
to
Also irgendwie hats hier jetzt was durcheinander gehauen.
Die Antwort von vorher zu der ich eigentlich was vergessen hatt sich
wohl irgendwie in Luft aufgelöst.
Naja nochmal das was eigentlich vor der 3. Nachricht stehen sollte:

Hallo Mark,

Danke für Deine Antwort.
Dass hilft mir schonmal ein gutes stück weiter, bisher hatte ich nicht
mal eine Vorstellung wie ich überhaupt mit
Pivotsichten arbeiten kann in VBA. Ich finde jetzt auch einige Themen
mit Google.
Allerdings bin ich nicht ganz schlüssig wie ich meine Indizes
herausfinden kann und ob ich hier auch Namen wie zum Beispiel die
zugrunde liegende Abfrage verwenden kann. Ich habe jetzt einige
Stunden gegoogelt und mit der Access-Hilfe unzählige
Kombinationen ausprobiert die Syntax darzustellen und komme aber
irgendwie zu keinem Ergebnis.
Auch bekomme ich bei folgendem Code die Fehlermeldung: "Typen
unverträglich"

Dim cs as ChartSpace
set cs = Me.Hauptmenu_UFO.Form.ChartSpace

Dieser wird bei einem click() - Ereignis auf eine Schaltfläche
ausgelöst.

An den Office Web Components liegts schonmal nicht, die habe ich
installiert, bzw. den Verweis gesetzt und sind auch
im Objektcatalog vorhanden.

LG
Martin

Mark Doerbandt

unread,
May 25, 2007, 4:47:51 PM5/25/07
to
Hallo, Martin,

Martin Hockemeyer:

> Die Antwort von vorher zu der ich eigentlich was vergessen hatt sich
> wohl irgendwie in Luft aufgelöst.

ich war schon verwirrt! ;-)

> Allerdings bin ich nicht ganz schlüssig wie ich meine Indizes
> herausfinden kann und ob ich hier auch Namen wie zum Beispiel die
> zugrunde liegende Abfrage verwenden kann. Ich habe jetzt einige
> Stunden gegoogelt und mit der Access-Hilfe unzählige
> Kombinationen ausprobiert die Syntax darzustellen und komme aber
> irgendwie zu keinem Ergebnis.

Ja, ich kenne das leider nur zu gut. Die Doku zu den OWC und
insbesondere Beispiele sind aeusserst mager. Ganz gut finde ich noch

http://msdn2.microsoft.com/en-us/library/aa166512(office.10).aspx

und

http://msdn2.microsoft.com/en-us/library/aa155735(office.10).aspx

> Auch bekomme ich bei folgendem Code die Fehlermeldung: "Typen
> unverträglich"
>
> Dim cs as ChartSpace
> set cs = Me.Hauptmenu_UFO.Form.ChartSpace

LOL, ja kann ich reproduzieren. Im Watch-Fenster wird es als
ChartSpace angezeigt, wenn Du es als Object deklarierst, kannst Du
(natuerlich) zuweisen (und verlierst natuerlich IntelliSense), dann im
DirektFenster: ?TypeName(cs) ergibt ... oh Wunder: ChartSpace.

Ich wuerde sagen, es liegt an der OWC-Version, aber ich habe nur eine
auf meinem System (OWC 11)...

Ich werde mal versuchen, das zu klaeren.

Mark Doerbandt

unread,
May 25, 2007, 5:00:24 PM5/25/07
to
Hallo,

Mark Doerbandt:

>> Auch bekomme ich bei folgendem Code die Fehlermeldung: "Typen
>> unverträglich"
>>
>> Dim cs as ChartSpace
>> set cs = Me.Hauptmenu_UFO.Form.ChartSpace

> Ich werde mal versuchen, das zu klaeren.

hmm - etwas unbefriedigend, aber in

http://www.utteraccess.com/forums/showflat.php?Number=781581

hat offenbar jemand mit einem Microsoftie gesprochen und die Auskunft
bekommen, dass es mit OWC 10 geht, nicht aber mit OWC 11. Das waere in
meienn Augen aergerlich, zumal ich beim Googeln auch aeltere Posts
gefunden habe, die das bei unterschiedlichen 10er-Versionen
unterschiedlich berichten.

Gruss - mark

Martin Hockemeyer

unread,
May 25, 2007, 10:25:24 PM5/25/07
to
Hallo Mark,

> LOL, ja kann ich reproduzieren. Im Watch-Fenster wird es als
> ChartSpace angezeigt, wenn Du es als Object deklarierst, kannst Du
> (natuerlich) zuweisen (und verlierst natuerlich IntelliSense), dann im
> DirektFenster: ?TypeName(cs) ergibt ... oh Wunder: ChartSpace.
>
> Ich wuerde sagen, es liegt an der OWC-Version, aber ich habe nur eine
> auf meinem System (OWC 11)...
>

> hmm - etwas unbefriedigend, aber in
>
> http://www.utteraccess.com/forums/showflat.php?Number=781581
>
> hat offenbar jemand mit einem Microsoftie gesprochen und die Auskunft
> bekommen, dass es mit OWC 10 geht, nicht aber mit OWC 11. Das waere in
> meienn Augen aergerlich, zumal ich beim Googeln auch aeltere Posts
> gefunden habe, die das bei unterschiedlichen 10er-Versionen
> unterschiedlich berichten.

Ich kann den Autor des Threads verstehen, mir gehts ähnlich. Schön
dass ich nicht der einzigste bin.
Ich hab schon an meinem Verstand gezweifelt mit der Fehlermeldung über
die Typenunverträglichkeit.
Ich werde es einfach mal ausprobieren. In dem Buch mit dem Titel
Access 2002 Programmieren
werden noch die Office XP WebComponents benutzt, mit denen scheint es
auch zu klappen.
Leider sind die angeführten Beispiele zu Pivot etwas mager in diesem
Buch. Aber
für eine komplette Access und VBA Referenz wäre wahrscheinlich auch
2000 Seiten nicht genug.
Ich werde mal die BeispielDB kopieren und bis es funzt mit allen
Versionen der OWC probieren die ich finden kann,

> Ja, ich kenne das leider nur zu gut. Die Doku zu den OWC und
> insbesondere Beispiele sind aeusserst mager. Ganz gut finde ich noch
>
> http://msdn2.microsoft.com/en-us/library/aa166512(office.10).aspx
> und
> http://msdn2.microsoft.com/en-us/library/aa155735(office.10).aspx

Ich habe mir die Links angeschaut. Die sind im Prinzip das selbe wie
die Hilfedateien für
Access. Ein paar Informationen stecken mehr drin. Allerdings hatte ich
den beim Googeln
auch schon entdeckt :) Wenn das so die besten (bekannten) sein
dürften, bleibt mir wohl
nix anderes übrig als mein Wochende auch noch zu opfern und weiterhin
die Lebensdauer
meines CPU-Lüfters zu verringern ;-)

Ich werde einfach mal weiter machen und berichten sobald ich was neues
heraus gefunden habe!

Vielen Dank einstweilen
LG
Martin

Martin Hockemeyer

unread,
May 25, 2007, 10:56:12 PM5/25/07
to
Martin Hockemeyer wrote:
> Ich werde einfach mal weiter machen und berichten sobald ich was neues
> heraus gefunden habe!

Also das mit den OWC 10.0 ist schonmal goldrichtig.
Keine Fehlermeldung mehr, jetzt geht es nur noch darum die Syntax
richtig darzustellen
und herauszufinden wo meine heiß ersehnten Filterinfos drin stecken
^^.

LG
Martin

Martin Hockemeyer

unread,
May 25, 2007, 10:57:29 PM5/25/07
to
Martin Hockemeyer wrote:
> Ich werde einfach mal weiter machen und berichten sobald ich was neues
> heraus gefunden habe!

Also das mit den OWC 10.0 ist schonmal goldrichtig.

Martin Hockemeyer

unread,
May 26, 2007, 12:10:40 AM5/26/07
to
Sorry für den Doppelpost, aber ich hatte vorher eine Fehlermeldung
dass die Nachricht nicht übermittelt wurde und ich es nochmal
versuchen sollte.
Naja.

>> Meine Frage:
>> (Wie) ist es möglich die angezeigten Information in dem
>> Popupinformationsfeld bzw. die aktuellen Filterinformationen des
>> Pivotschart auszuwerten und z.B. einer Variable zu übergeben?

> das sollte ueber
> Me.ChartSpace.Charts(0).SeriesCollection.PivotAxis.SourceAxis.FieldSets(0).Fields(0).ExcludedMembers

So wie ich das sehe ist diese Eigenschaft nur für Pivottables jedoch
nicht für Charts zulässig? Bitte sag dass ich mir täusche.
Ich habe es mittlerweile auch geschafft alle Felder in meinem Chart
anzusprechen, auch z.B. das Feld für die Filterauswahl.
Allerdings komme ich von dort aus nicht an die Daten ran.

Me.Hauptmenu_UFO.Form.ChartSpace.Charts(0).SeriesCollection.Count
'Liefert den Wert 1. Enthalten ist meine Datenreihe, also mein
Kreisdiagramm.

Sobald ich versuche tiefer zu gehen, erhalte ich keine Daten mehr:
Me.Hauptmenu_UFO.Form.ChartSpace.Charts(0).SeriesCollection.PivotAxis.Fields.Count
'liefert 0
Me.Hauptmenu_UFO.Form.ChartSpace.Charts(0).SeriesCollection.PivotAxis.SourceAxis.FieldSets.Count
'liefert 0

Irgendeine Idee welchen weg ich gehen muss?
Ich komme mir vor wie in einem Labyrinth mit unzähligen Sackgassen...

LG
Martin

Mark Doerbandt

unread,
May 26, 2007, 8:39:24 AM5/26/07
to
Hallo, Martin,

Martin Hockemeyer:

>> Me.ChartSpace.Charts(0).SeriesCollection.PivotAxis.SourceAxis.FieldSets(0).Fields(0).ExcludedMembers
>
> So wie ich das sehe ist diese Eigenschaft nur für Pivottables jedoch
> nicht für Charts zulässig?

nein, ich habe es mit einem Pivot-Chart und OWC11 getestet. Das gab
die richtigen Ergebnisse.

> Allerdings komme ich von dort aus nicht an die Daten ran.

Ja, ich habe auch das Gefühl, dass man wohl die einzelnen Reihen und
sogar Datenpunkte mit samt deren Formatierung ansprechen kann, nicht
aber die eigentlichen Datenwerte erhält.

> Sobald ich versuche tiefer zu gehen, erhalte ich keine Daten mehr:
> Me.Hauptmenu_UFO.Form.ChartSpace.Charts(0).SeriesCollection.PivotAxis.Fields.Count
> 'liefert 0
> Me.Hauptmenu_UFO.Form.ChartSpace.Charts(0).SeriesCollection.PivotAxis.SourceAxis.FieldSets.Count
> 'liefert 0

Mir hilft es an solchen Stellen immer, einen Watch auf das Objekt
anzulegen und im Debugmodus an einem Haltepunkt das Objekt im
Watch-Fenster zu untersuchen.

Gruss - Mark

Martin Hockemeyer

unread,
May 26, 2007, 9:36:31 AM5/26/07
to
Mark Doerbandt:

> Mir hilft es an solchen Stellen immer, einen Watch auf das Objekt
> anzulegen und im Debugmodus an einem Haltepunkt das Objekt im
> Watch-Fenster zu untersuchen.

Hallo Markus,

> Mir hilft es an solchen Stellen immer, einen Watch auf das Objekt
> anzulegen und im Debugmodus an einem Haltepunkt das Objekt im
> Watch-Fenster zu untersuchen.

Ja, darüber bin ich schon lange hinaus, glaube mir.
Ich habe es auch geschafft die einzelnen Members die in dem
Filterauswahlfeld angezeigt werden, anzusprechen und deren Namen
auszulesen.
Mit Childmembers und allem drum und dran. Aber jedes mal wenn ich den
Werd der Included oder Excluded Eigenschaft einer Variablen übergeben
möchte,
ist diese leer oder ich bekomme die Fehlermeldung "Typen nicht
kompatibel". Wenn ich die Werte dann einem Array übergebe ist dieser
wiederrum leer.
Die Eigenschaft Isfiltered gibt immer den Wert "False" zurück. Ich
habe versucht die Filterdaten auf den unterschiedlichsten Wegen
anzusprechen.
Von PivotChart über PivotTable, ActiveView, SourceAxis,
FilterSourceAxis, SeriesCollection, RowAxis, etc....
In Kombinationen der Objekte auf unterschiedlichste Art.

Irgendwo ist der hau drin ist und ich komm einfach nicht drauf.
Vielleicht liegt es auch an der Erstellung des PivotCharts in der
Formularansicht, da die der Vorgänger gemacht hat kann ich das nicht
genau sagen.

Naja, ich versuche es morgen nochmal.Wenns dann nicht klappt, weiß ich
auch nicht mehr.
Ich mach jetzt einfach schon zulange an dem Problem rum.
Das einzigst positive ist dass ich jetzt wohl Pivots in VBA auf jede
Weise bearbeiten und verändern kann wie ich möchte.
(Außer den aktuellen Filter auszulesen^^)
Aber naja, mal sehen.

LG
Martin

Martin Hockemeyer

unread,
May 26, 2007, 10:01:05 AM5/26/07
to
Hallo Markus,

> Mir hilft es an solchen Stellen immer, einen Watch auf das Objekt
> anzulegen und im Debugmodus an einem Haltepunkt das Objekt im
> Watch-Fenster zu untersuchen.

Ja, darüber bin ich schon lange hinaus, glaube mir.

Mark Doerbandt

unread,
May 27, 2007, 1:47:14 PM5/27/07
to
Hallo, Martinus,

Martin Hockemeyer:

> Aber jedes mal wenn ich den Werd der Included oder Excluded
> Eigenschaft einer Variablen übergeben möchte

folgendes geht bei mir (OWC11):

Dim a() As Variant
a = Me!subChart.Form.ChartSpace.Charts(0).SeriesCollection.
PivotAxis.SourceAxis.FieldSets(0).Fields(0).ExcludedMembers
MsgBox a(0).Caption

(drei Zeilen, Umbruch nur fuer Lesbarkeit)

Martin Hockemeyer

unread,
May 28, 2007, 12:24:33 AM5/28/07
to
Hallo Mark,

sorry ich weiß auch nicht wie ich auf us gekommen bin.
Martinus hört sich aber auch nicht schlecht an, wie im alten Rom^^
Nur gabs da kein Access...

Mark wrote:

> folgendes geht bei mir (OWC11):
>
> Dim a() As Variant
> a = Me!subChart.Form.ChartSpace.Charts(0).SeriesCollection.
> PivotAxis.SourceAxis.FieldSets(0).Fields(0).ExcludedMembers
> MsgBox a(0).Caption

Mein Code sieht folgendermaßen aus:

Dim cs As ChartSpace
Dim co As ChChart
Dim cf As PivotFieldSet

Set cs = Me.Hauptmenu_UFO.Form.ChartSpace
Set co = cs.Charts(0)
Set cf =
co.SeriesCollection.PivotAxis.Data.FilterAxis.SourceFilterAxis.FieldSets(0)

'Bis hierher stimmt auch alles, ich habe die wichtigsten Varianten
meiner Versuche jetzt mal aufgeführt.
'Alle habe ich auch mit OWC 10.0 und OWC 11.0 sowie in einer Zeile
ohne vorherige Set anweisungen und auch ohne Hauptformulare
'getestet. Sämtliche Varianten habe ich auch auf unterschiedlichen Weg
probiert, z.B. über PivotTable anstatt ChartSpace und durch
'unterschiedliche Kombinationen der diversen Klassen hindurch. Hier
die Varianten die mir am wahrscheinlichsten scheinen um
'zu einem Ergebnis zu kommen:

'1.
Dim filter As Variant
filter = cf.FilterCaption
MsgBox filter 'hat den Wert mehrere Elemente, ist ja ganz schön,
zumindest bin ich an der richtigen stelle, aber welche Elemente???
'2.
Dim filter As Variant
filter = cf.View.IsFiltered
MsgBox filter ' filter hat mittlerweile den wert true
'3.
Dim filter As Variant
filter = cf.Fields.Count
MsgBox filter ' filter hat den wert 7 mit folgenden feldnamen (Jahr,
Quartal, Monat, Tag, Stunde, Minute, Sekunde)
'4.
Dim filter As Variant
filter = cf.Fields(0).IncludedMembers
MsgBox filter ' filter für fields(0) - fields(6) ist leer
'5.
Dim filter() As Variant
filter = cf.Fields(0).IncludedMembers 'fehler: Typen unverträglich
MsgBox filter

'6.
Dim filter As Variant
filter = cf.BoundField.BaseName
MsgBox filter ' filter hat den Wert Datum, das ist auch eigentlich das
Feld im Formular und aus der Abfrage an dessen Werte ich ran will...
'7.
Dim filter As Variant
filter = cf.BoundField.IncludedMembers
MsgBox filter ' filter ist mal wieder leer
'8.
Dim filter() As Variant
filter = cf.BoundField.IncludedMembers ' fehler: Typen unverträglich
MsgBox filter(0).Caption


Liebe Grüße und vielen Dank für Deine Geduld
Martin

Mark Doerbandt

unread,
May 28, 2007, 6:36:53 AM5/28/07
to
Hallo, Martin,

Martin Hockemeyer:

> Set cf =
> co.SeriesCollection.PivotAxis.Data.FilterAxis.SourceFilterAxis.FieldSets(0)

da bist Du aber "woanders" als ich...

Set cf = co.SeriesCollection.PivotAxis.SourceAxis.FieldSets(0)

und dann sollte

> '5.
> Dim filter() As Variant
> filter = cf.Fields(0).IncludedMembers

MsgBox Filter(0).Caption

gehen.

Martin Hockemeyer

unread,
Jun 1, 2007, 7:36:53 AM6/1/07
to
Hallo Markus,

sorry, ich war die letzten Tage im Flieger und noch unter Einfluss des
Jetlags...

Mark Doerbandt:


> da bist Du aber "woanders" als ich...
>
> Set cf = co.SeriesCollection.PivotAxis.SourceAxis.FieldSets(0)

Wenn ich dahin gehe von wo aus Du auf die Daten zugreifst, erhalte ich
die Fehlermeldung: "Index außerhalb des gültigens Bereichs"
Ich hab keine Inhalte hier und auch ein Count bringt das Ergebnis 0.
Im Prinzip müsste es ja egal sein von wo aus ich auf die Daten
zugreife oder?

Ich hab wie gesagt keine großen Einfälle mehr, aber sobald ich wieder
ein wenig mehr Zeit habe, werde ich hier nochmal
etwas forschen. Vielleicht hast ja Du auch nochmal eine Idee, bin
immer noch für jeden Tipp dankbar :)

Lieber Gruß
Martin

Martin Hockemeyer

unread,
Jun 1, 2007, 7:37:59 AM6/1/07
to
Martin Hockemeyer:
> Hallo Markus,

Sorry ich habs schon wieder getan.... Schande über mein Haupt...
Ich hoffe Du kannst mir verzeihen :)

LG

Martin Hockemeyer

unread,
Jun 1, 2007, 7:38:08 AM6/1/07
to

Mark Doerbandt

unread,
Jun 1, 2007, 8:04:02 AM6/1/07
to
Hallo, Martin,

Martin Hockemeyer:

> Wenn ich dahin gehe von wo aus Du auf die Daten zugreifst, erhalte ich
> die Fehlermeldung: "Index außerhalb des gültigens Bereichs"
> Ich hab keine Inhalte hier und auch ein Count bringt das Ergebnis 0.

wenn Du Lust hast, schick mir doch mal eine kleine Beispieldatenbank
(ignoriere ggf. den Autoresponder).

Martin Hockemeyer

unread,
Jun 1, 2007, 9:52:24 AM6/1/07
to
Hallo Mark,

das ist sehr lieb von Dir, vielen Dank!
Ich schicke die DB gleich los.

LG
Martin

P.S. Diese Doppelpost bringen mich um den Verstand, irgendwas stimmt
hier nicht...

Mark Doerbandt

unread,
Jun 1, 2007, 12:08:14 PM6/1/07
to
Hallo, Martin,

Martin Hockemeyer:

> Ich schicke die DB gleich los.

probiere mal

Dim cs As ChartSpace
Dim co As ChChart
Dim cf As PivotFieldSet

Dim ms As PivotMembers
Dim m As PivotMember
Dim fs As PivotFields
Dim f As PivotField
Dim mei() As Variant
Dim i As Integer



Set cs = Me.Hauptmenu_UFO.Form.ChartSpace
Set co = cs.Charts(0)

Set fs =
co.SeriesCollection.PivotAxis.Data.FilterAxis.FieldSets(0).Fields
For Each f In fs
Debug.Print f.Caption
Next f

Set ms =
co.SeriesCollection.PivotAxis.Data.FilterAxis.FieldSets(0).Members
For Each m In ms
Debug.Print m.Caption
Next m

mei =
co.SeriesCollection.PivotAxis.Data.RowAxis.Fields(0).ExcludedMembers
For i = LBound(mei) To UBound(mei)
Debug.Print mei(i).Caption
Next i

Set ms =
co.SeriesCollection.PivotAxis.Data.RowAxis.Fields(0).FieldSet.Members
For Each m In ms
Debug.Print m.Caption
Next m

Gruss - Mark

Martin Hockemeyer

unread,
Jun 2, 2007, 4:21:27 AM6/2/07
to
Hallo Mark,

Vielen Dank für Deine Mühen!

Mark Doerbandt:
> probiere mal

> mei =
> co.SeriesCollection.PivotAxis.Data.RowAxis.Fields(0).ExcludedMembers
> For i = LBound(mei) To UBound(mei)
> Debug.Print mei(i).Caption
> Next i

leider ist die Variable dennoch immer leer, das gleiche Problem, dass
ich vorher auch schon hatte.
Oder ich steh nun wirklich aufm Schlauch?

LG
Martin

Mark Doerbandt

unread,
Jun 2, 2007, 8:54:11 AM6/2/07
to
Hallo, Martin,

Martin Hockemeyer:

> leider ist die Variable dennoch immer leer, das gleiche Problem, dass
> ich vorher auch schon hatte.

also, bei mir geht es. Aber ich habe OWC11 installiert. Ich sende Dir
mal per eMail Deine von mir geaenderte Datenbank zurueck...

Gruss - Mark

Mark Doerbandt

unread,
Jun 3, 2007, 5:42:12 PM6/3/07
to
Hallo, Martin,

Mark Doerbandt:

> also, bei mir geht es.

> ...
> [Maildiskussion]

ok, da haben wir uns in der Tat missverstanden. Ich dachte, Du
filterst die Rubriken. Fuer die Zeitraeume geht bei mir:

Private Sub btnTest_Click()

Const cstrFileNameExcluded As String = "C:\Temp\Excluded.txt"
Dim intFileExcluded As Integer
intFileExcluded = FreeFile
Open cstrFileNameExcluded For Output As #intFileExcluded
Print #intFileExcluded, _
printChildMembers(Me.Hauptmenu_UFO.Form.ChartSpace.Charts(0).SeriesCollection.PivotAxis.Data.FilterAxis.FieldSets(0).AllMember,
"")
Close #intFileExcluded
FollowHyperlink cstrFileNameExcluded

End Sub

Private Function printChildMembers(pm As PivotMember, _
indent As String) As String
Dim strResult As String
Dim m As PivotMember
Dim Ex() As Variant
Dim i As Integer
Dim strEx As String
strResult = ""
For Each m In pm.ChildMembers
strEx = " "
If Not IsEmpty(m.Field.ExcludedMembers) Then
Ex = m.Field.ExcludedMembers
For i = LBound(Ex) To UBound(Ex)
If m.UniqueName = Ex(i).UniqueName Then
strEx = " (excluded)"
Exit For
End If
Next i
End If
strResult = strResult & indent & m.Caption & strEx & vbCrLf
If strEx = " " Then
strResult = strResult & printChildMembers(m, " " & indent)
End If
Next m
printChildMembers = strResult
End Function

Martin Hockemeyer

unread,
Jun 6, 2007, 1:02:08 PM6/6/07
to
Hallo Mark,

vielen Dank nochmal für Deine Antwort.

Leider bin ich noch nicht dazu gekommen deinen Vorschlag zu testen und
konnte
die letzten Tage wegen einer Leitungsstörung auch nicht antworten.
Ich melde mich sobald ich ein Feedback habe.

Liebe Grüße und schönen Feiertag
Martin

Mark Doerbandt

unread,
Jun 13, 2007, 3:50:41 AM6/13/07
to
Hallo, Martin,

Martin Hockemeyer:

> Ich melde mich sobald ich ein Feedback habe.

bist Du hier schon weiter gekommen?

Gruss - Mark

Martin Hockemeyer

unread,
Jul 4, 2007, 12:47:43 AM7/4/07
to
Mark Doerbandt wrote:

> bist Du hier schon weiter gekommen?

Hallo Mark,

sorry, ich war die letzten (Wochen) echt busy.
Ich werde es nun testen und sage bescheid sobald ich
Ergebnisse habe.

LG
Martin

Martin Hockemeyer

unread,
Jul 4, 2007, 1:01:54 AM7/4/07
to
Hallo nochmal,

ich habe es ausprobiert und mir die Datei die ausgegeben wird
angesehen. Ich bin beeindruckt!
Jetzt muss ich die Funktion lediglich auf meine Ausgabewünsche
anpassen!
Sobald ich die habe werde ich dann nochmal posten.
Bis dahin, vielen Dank für Deine (ausgesprochen gute) Hilfe!

Liebe Grüße
Martin


Martin Hockemeyer

unread,
Jul 4, 2007, 4:48:57 AM7/4/07
to
Hallo Mark,

Vorneweg muss ich anmerken dass Deine Funktion echt clever ist
und ich einiges daraus lernen konnte.
Ich habe das aus Deiner Funktion erlernte Wissen genommen und
benutzt um mir alle des jeweiligen Jahres beinhalteten Monate
zurückzugeben. Ich habs wahrscheinlich nicht ganz so clever gemacht,
aber es funktioniert.
Die Funktion die ich mir gebastelt habe schaut so aus:

Private Sub BtnTest_Click()

Const cstrFileNameIncluded As String = "C:\Temp\Included.txt"
Dim intFileIncluded As Integer
intFileIncluded = FreeFile
Open cstrFileNameIncluded For Output As #intFileIncluded
Print #intFileIncluded, printChildMembers _

(Me.Hauptmenu_UFO.Form.ChartSpace.Charts(0).SeriesCollection _
.PivotAxis.Data.FilterAxis.FieldSets(0).AllMember)
Close #intFileIncluded
FollowHyperlink cstrFileNameIncluded
End Sub


Private Function printChildMembers(Alle As PivotMember) As String

Dim Jahr As PivotMember
Dim Qrtl As PivotMember
Dim Monat As PivotMember
Dim exJahr() As Variant
Dim exQrtl() As Variant
Dim exMonat() As Variant
Dim i1 As Integer
Dim i2 As Integer
Dim i3 As Integer
Dim strMonate As String
Dim strInhalte As String
Dim excl As String

For Each Jahr In Alle.ChildMembers
If Not IsEmpty(Jahr.Field.ExcludedMembers) Then
exJahr = Jahr.Field.ExcludedMembers
For i1 = LBound(exJahr) To UBound(exJahr)
excl = ""
If Jahr.UniqueName = exJahr(i1).UniqueName Then
excl = "excluded"
Exit For
End If
Next i1
End If
If Not excl = "excluded" Then
For Each Qrtl In Jahr.ChildMembers
If Not IsEmpty(Qrtl.Field.ExcludedMembers) Then
exQrtl = Qrtl.Field.ExcludedMembers
For i2 = LBound(exQrtl) To UBound(exQrtl)
excl = ""
If Qrtl.UniqueName = exQrtl(i2).UniqueName Then
excl = "excluded"
Exit For
End If
Next i2
End If
If Not excl = "excluded" Then
For Each Monat In Qrtl.ChildMembers
If Not IsEmpty(Monat.Field.ExcludedMembers) Then
exMonat = Monat.Field.ExcludedMembers
For i3 = LBound(exMonat) To UBound(exMonat)
excl = ""
If Monat.UniqueName =
exMonat(i3).UniqueName Then
excl = "excluded"
Exit For
End If
Next i3
End If
If Not excl = "excluded" Then strMonate =
strMonate & Monat.Caption & "/"
Next Monat
End If
Next Qrtl
strInhalte = strInhalte & Jahr.Caption & ": " & strMonate &
vbCrLf
strMonate = ""
End If
Next Jahr

printChildMembers = strInhalte
End Function


Liebe Grüße und danke nochmal.
Martin

Mark Doerbandt

unread,
Jul 4, 2007, 4:57:08 AM7/4/07
to
Hallo, Martin,

Martin Hockemeyer:

> Die Funktion die ich mir gebastelt habe schaut so aus:
>
> Private Sub BtnTest_Click()

vielen Dank auch Dir, dass Du Dein Ergebnis hier teilst.

btw: ich habe durch Deine Frage auch viel gelernt! ;-)
Dieses Objektmodell ist leider nicht trivial.

Gruss - Mark

Thomas Möller

unread,
Jul 4, 2007, 12:40:03 PM7/4/07
to
Hallo Martin,

ich hätte noch zwei kleine Anregungen für Dich. Ich habe sie Dir unten
in den Code geschrieben.

Martin Hockemeyer <m.hock...@compucare.org> schrieb:


> Private Sub BtnTest_Click()
>
> Const cstrFileNameIncluded As String = "C:\Temp\Included.txt"
> Dim intFileIncluded As Integer
> intFileIncluded = FreeFile
> Open cstrFileNameIncluded For Output As #intFileIncluded
> Print #intFileIncluded, printChildMembers _
>
> (Me.Hauptmenu_UFO.Form.ChartSpace.Charts(0).SeriesCollection _

Wenn Du Steuerelemente referenzierrst, dann solltest Du grundsätzlich
"Me!" statt "Me." schreiben. Sie dazu auch www.donkarl.com?FAQ6.3

> Private Function printChildMembers(Alle As PivotMember) As String
>
> Dim Jahr As PivotMember

> Dim Monat As PivotMember

Du deklarierst hier zwei Variablen mit Namen, die auch als Name einer
Funktion in Access bzw. VBA vorhanden sind. Nur um Missverständnisse und
Irrtümer zu vermeiden solltest Du hier jeweils einen Präfix
voranstellen, z.B.

Dim pvJahr As PivotMember
Dim pvMonat As PivotMember

CU
--
Thomas

Homepage: www.Team-Moeller.de

Mark Doerbandt

unread,
Jul 4, 2007, 12:52:09 PM7/4/07
to
Hallo, Thomas,

Thomas Möller:

> Wenn Du Steuerelemente referenzierrst, dann solltest Du grundsätzlich
> "Me!" statt "Me." schreiben. Sie dazu auch www.donkarl.com?FAQ6.3

das hat er doch von mir kopiert. Michael sagt, das sein in Ordnung!
;-)

Gruss - Mark

Martin Hockemeyer

unread,
Jul 5, 2007, 12:20:39 AM7/5/07
to
@ Thomas,

Danke für die Tips

Thomas Möller:
> Wenn Du Steuerelemente referenzierrst, dann solltest Du grundsätzlich
> "Me!" statt "Me." schreiben. Sie dazu auch www.donkarl.com?FAQ6.3

Ja, wie Mark schon gesagt steht das da weil ich nur kopiert und
schnell umgeschrieben habe.
Aber Du hast natürlich recht.

> Du deklarierst hier zwei Variablen mit Namen, die auch als Name einer
> Funktion in Access bzw. VBA vorhanden sind.

Habe ich nicht dran gedacht. Danke für den Hinweis.
Erinnert mich daran dass ich mir ohnenhin mal die Namenskonventionen
zu gemüte führen muss. Manchmal vergesse ich nämlich meine eigenen
Namensregeln :)

Mark Doerbrandt schrieb:


>das hat er doch von mir kopiert. Michael sagt, das sein in Ordnung!

Wer ist Michael?

Liebe Grüße
Martin


Thomas Möller

unread,
Jul 5, 2007, 1:55:21 AM7/5/07
to
Hallo Martin,

Martin Hockemeyer <m.hock...@compucare.org> schrieb:


> Mark Doerbrandt schrieb:
>> das hat er doch von mir kopiert. Michael sagt, das sein in Ordnung!
>
> Wer ist Michael?

das ist ein Witz für Insider. Es bezieht sich auf diesen Thread:
http://groups.google.de/group/microsoft.public.de.access/browse_frm/thread/aac27bedef4d2963
(Link in einer Zeile)

Konkret auf die Postings von Michael Zimmermann vom 2. Juli 2007.

Jens Schilling

unread,
Jul 5, 2007, 2:01:28 AM7/5/07
to
Hallo, Martin

> Wer ist Michael?

MZ (Michael Zimmermann ) aus MZ (Mainz)
Einer der bekennensten Jünger Coddes ;-)

--
Gruss
Jens
______________________________
FAQ: http://www.donkarl.com


0 new messages