Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

dynamisches Gruppieren im Bericht

Begonnen von chainy24, April 09, 2016, 13:21:11

⏪ vorheriges - nächstes ⏩

chainy24

Hallo,
ich habe einen Bericht, der wahlweise nach Jahr/Monat/Woche gruppiert werden soll. Im Gruppenkopf gibt es drei Textfelder, die je nach Auswahl ein- oder ausgeblendet werden sollen. Dazu habe ich im Berichtskopf ein Listenfeld für die Auswahl erstellt, dessen Wert in ein Textfeld (txtwahl) übertragen wird. Per Click auf einen Button wird folgender Code angewandt:
Private Sub Befehl14_Click()
If Me!txtwahl = "woche" Then
    Me.GroupLevel(0).GroupOn = 5
    txtwoche.Visible = True
    txtmonat.Visible = False
    txtjahr.Visible = False
ElseIf Me!txtwahl = "monat" Then
    Me.GroupLevel(0).GroupOn = 4
    txtwoche.Visible = False
    txtmonat.Visible = True
    txtjahr.Visible = False
ElseIf Me!txtwahl = "jahr" Then
    Me.GroupLevel(0).GroupOn = 2
    txtwoche.Visible = False
    txtmonat.Visible = False
    txtjahr.Visible = True
End If
End Sub


Eigentlich funktioniert das, wie sich an der Sichtbarkeit/Unsichtbarkeit des jeweiligen Textfeldes im Gruppenkopf zeigt, einwandfrei. ABER ...
... die Gruppierung und damit verbunden die jeweiligen Summen ändern sich erst dann, wenn ich den Vorgang wiederhole. Dh.: Nochmal im Listenfeld wählen und Button klicken.

Kann mir jemand weiterhelfen, warum die Gruppierung nicht schon beim ersten Klick funktioniert?
Vielen Dank im Voraus
chainy

Beaker s.a.

Hallo chainy,
Hast Du ein .Requery des Berichts versucht?
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

chainy24

Hallo,
ja. Hatte aber gar keinen Effekt.

Gruß chainy

chainy24

Hallo,
hab eine Lösung gefunden!
Ich habe das Textfeld, das den Wert aus dem Listenfeld übernommen hat entfernt und greife im Code direkt auf das Listenfeld zu, dem ich zuvor noch eine weitere Spalte mit den entsprechenden Werten zugewiesen habe (für Jahr "2", Monat "4"..). Ist aber nur eine "kosmetische Maßnahme", um nicht unnötige Felder zu haben. Um die Gruppierung beim ersten Klick hinzubekommen, hab ich die Anweisung "GroupOn" kurzerhand im Code wiederholt. Sieht jetzt so aus:
Private Sub Bef_Auswahl_Click()

wahl = Me!Liste1.Column(2)

Me.GroupLevel(0).GroupOn = wahl
Me.GroupLevel(0).GroupOn = wahl

If wahl = "5" Then
    txtwoche.Visible = True
    txtmonat.Visible = False
    txtjahr.Visible = False
ElseIf wahl = "4" Then
    txtwoche.Visible = False
    txtmonat.Visible = True
    txtjahr.Visible = False
ElseIf wahl = "2" Then
    txtwoche.Visible = False
    txtmonat.Visible = False
    txtjahr.Visible = True
End If

End Sub


Zweifellos nicht die eleganteste Lösung und vermutlich auch nicht die Ursache behebend. ABER es funktioniert!!
Gruß chainy