none
Gruppierung per VBA auflösen und Sortierung festlegen

    Frage

  • Hallo alle zusammen

    Meine Frage bezieht sich in Access auf die Auflösung von Gruppierungen in VBA.

    Mein Bericht hat folgende Gruppierung:

    Gruppieren nach: t_K-daten.k-daten-kundennr
       Grupieren nach a-artikel-kategorie
          sortieren nach a-artikel-text

    Beispiel Daten:

    Food
      Brot
      Salzstangen
      Weinbeeren
    Werkzeug
      Hammer
      Zange


    Diese Ausgabe funktioniert.
    Nun möchte ich aber diesen Bericht per vba ändern, so dass alle Artikel ohne die Kategorie aufgelistet werden.


    Also so:

      Brot
      Salzstangen
      Hammer
      Weinbeeren
      Zange


    Dazu habe ich folgenden Code geschrieben: Meine Frage bezieht sich auf Case 3, ich will keine Gruppierung, nur nach Artikel sortiert.


    Private Sub Sortierung(vSortierung)
        'Gruppierung Sortierung
        '1 Gruppiert Kategorie & Sortiert Artikel
        '2 Gruppiert Kategorie & Sortiert Eingabereihenfolge (ID)
        '3 Keine Gruppierung, Sortiert nach Artikel
        '4 Keine Gruppierung, Sortiert nach Eingabereihenfolge
        
        'GroupLevel0 = t_k-daten.k-daten-kundennr
        'GroupLevel1 = a-artikel-preis
        'GroupLevel2 = a-artikel-text

        Select Case vSortierung
            Case 1
                Me.GroupLevel(2).ControlSource = "a-artikel-text"
            Case 2
                Me.GroupLevel(2).ControlSource = "b-positionen-id"
            Case 3
                Me.Section(acGroupLevel2Header).Visible = False
                Me.GroupLevel(2).ControlSource = "a-artikel-text"
            Case 4
                Me.Section(acGroupLevel2Header).Visible = False
                Me.GroupLevel(2).ControlSource = "b-positionen-id"
        End Select

    End Sub


    Jetzt wird wohl die Gruppierung aufgelöst, aber die Artikel werden zuerst nach der Guppe und erst dann nach dem Artikel sortiert. Also so:

      Brot
      Salzstangen
      Weinbeeren
      Hammer
      Zange

    Der Hammer müsste nach Brot kommen...

    Was mache ich falsch? Oder was muss ich tun, damit mir nicht gruppiert wird, sondern nur nach Artikel sortiert?

    Vielen Dank für Hinweise
    Sonntag, 14. September 2014 12:45

Alle Antworten

  • Am 14.09.2014 schrieb Sabrina Sanders:

    Dazu habe ich folgenden Code geschrieben: Meine Frage bezieht sich auf Case 3, ich will keine Gruppierung, nur nach Artikel sortiert.


    Private Sub Sortierung(vSortierung)
        'Gruppierung Sortierung
        '1 Gruppiert Kategorie & Sortiert Artikel
        '2 Gruppiert Kategorie & Sortiert Eingabereihenfolge (ID)
        '3 Keine Gruppierung, Sortiert nach Artikel
        '4 Keine Gruppierung, Sortiert nach Eingabereihenfolge
        
        'GroupLevel0 = t_k-daten.k-daten-kundennr
        'GroupLevel1 = a-artikel-preis
        'GroupLevel2 = a-artikel-text

        Select Case vSortierung
            Case 1
                Me.GroupLevel(2).ControlSource = "a-artikel-text"
            Case 2
                Me.GroupLevel(2).ControlSource = "b-positionen-id"
            Case 3
                Me.Section(acGroupLevel2Header).Visible = False
                Me.GroupLevel(2).ControlSource = "a-artikel-text"
            Case 4
                Me.Section(acGroupLevel2Header).Visible = False
                Me.GroupLevel(2).ControlSource = "b-positionen-id"
        End Select

    End Sub

    Bei welchem Ereignis rufst Du den Code auf?

    Jetzt wird wohl die Gruppierung aufgelöst, aber die Artikel werden zuerst nach der Guppe und erst dann nach dem Artikel sortiert. Also so:

      Brot
      Salzstangen
      Weinbeeren
      Hammer
      Zange

    Der Hammer müsste nach Brot kommen...

    Was mache ich falsch? Oder was muss ich tun, damit mir nicht gruppiert wird, sondern nur nach Artikel sortiert?

    Hast Du die Source auch geändert oder ist das nicht nötig?


    Servus
    Winfried

    Gruppenrichtlinien
    WSUS Package Publisher
    HowTos zum WSUS Package Publisher
    NNTP-Bridge für MS-Foren

    Montag, 22. September 2014 07:50
  • Salü Winfried

    Vielen Dank für Deine Wortmeldung.

    Meinen Code Sub Sortierung(vSortierung) wird aufgerufen von Private Sub Report_Open(Cancel As Integer) und zwar mittels:
    Call Sortierung(vSortierung)

    In Report_Open blende ich noch ein paar Felder ein oder aus, das funktioniert einwandfrei. Der Code wird also durchlaufen.

    Die Source, meine ich, müsste ich nicht ändern. Denn egal ob mit oder ohne Gruppierung, ich muss in beiden Fällen die gleichen Datenfelder anzeigen. Einmal müssen Sie einfach gruppiert sein nach Kategorie. Das funktioniert auch wunderbar, wenn ich meinen Code laufen lasse ist die Gruppierung wohl weg, das heisst alle Datensätze egal welcher Kategorie stehen untereinander, aber die Sortierung ist falsch. Es wird noch immer innerhalb der Kategorie sortiert...

    Viele liebe Grüsse
    Sabrina

    Mittwoch, 24. September 2014 19:10
  • Am 24.09.2014 schrieb Sabrina Sanders:

    Meinen Code Sub Sortierung(vSortierung) wird aufgerufen von Private Sub Report_Open(Cancel As Integer) und zwar mittels:
    Call Sortierung(vSortierung)

    In Report_Open blende ich noch ein paar Felder ein oder aus, das funktioniert einwandfrei. Der Code wird also durchlaufen.

    Wird denn die Sortierung auch durchlaufen? Einfach mal einen
    Haltepunkt setzen, dann weißt Du Bescheid.

    Die Source, meine ich, müsste ich nicht ändern. Denn egal ob mit oder ohne Gruppierung, ich muss in beiden Fällen die gleichen Datenfelder anzeigen. Einmal müssen Sie einfach gruppiert sein nach Kategorie. Das funktioniert auch wunderbar, wenn ich meinen Code laufen lasse ist die Gruppierung wohl weg, das heisst alle Datensätze egal welcher Kategorie stehen untereinander, aber die Sortierung ist falsch. Es wird noch immer innerhalb der Kategorie sortiert...

    Ruf die Sortierung bei 'Formatierung' auf, wird dann korrekt sortiert?


    Servus
    Winfried

    Gruppenrichtlinien
    WSUS Package Publisher
    HowTos zum WSUS Package Publisher
    NNTP-Bridge für MS-Foren

    Donnerstag, 25. September 2014 07:05
  • Guten Abend Winfried,

    ja, die Sortierung wird durchlaufen, denn wenn ich ein anderes Feld wähle, wird das andere Feld sortiert, aber eben, innerhalb der Gruppe, obwohl diese nicht mehr angezeigt wird.

    Den Bericht kann ich manuell sortieren? Wo denn? Ribbon Datei? Seitenansicht? Add-Ins? Mehr habe ich nicht. Auch in der rechten MAustaste finde ich nichts.

    Nehme ich den Bericht in den Entwurf und öffne die Datenquelle, dann kann ich dort sortieren und es wird mir über die gesamte Datenquelle richtig sortiert. Also von A bis Z. 

    Vielen Dank für Deine Bemühgunen.

    Donnerstag, 25. September 2014 19:44
  • Am 25.09.2014 schrieb Sabrina Sanders:

    ja, die Sortierung wird durchlaufen, denn wenn ich ein anderes Feld wähle, wird das andere Feld sortiert, aber eben, innerhalb der Gruppe, obwohl diese nicht mehr angezeigt wird.

    Hmm, kannst Du eine abgespeckte DB uploaden und den Link hier posten?
    Dann kann man sich das live anschauen.

    Du hast Skydrive zur Verfügung, dort uploaden. Wie das geht steht in
    diesem Link:
    http://answers.microsoft.com/de-de/windows/forum/windows_7-networking/wie-nutze-ich-skydrive/af6c55f1-0e82-460e-babb-794ff26e5698

    Den Bericht kann ich manuell sortieren? Wo denn? Ribbon Datei? Seitenansicht? Add-Ins? Mehr habe ich nicht. Auch in der rechten MAustaste finde ich nichts.

    Deinen Code beim Formatieren ausführen meinte ich.


    Servus
    Winfried

    Gruppenrichtlinien
    WSUS Package Publisher
    HowTos zum WSUS Package Publisher
    NNTP-Bridge für MS-Foren

    Freitag, 26. September 2014 18:03
  • Salü Winfried

    Vielen Dank für Deine Hilfe. Habe eine Datenbank erstellt welche genau das Problem zeigt. Hoffe habe alles richtig gemacht damit Du es unter dem Link https://onedrive.live.com/redir?resid=4DC34EF66B138FD!484&authkey=!ANW1BWmc_CqbXT4&ithint=file%2cmdb erreichen kannst.

    Du hast ein Formular mit drei Knöpfen. Der erste bring den Bericht genauso wie er soll ohne weitere Probleme.

    Der zweite soll die Gruppierung aufheben und alle Datensätze nach der Eingabereihenfolge, also nach der BestellID sortieren (1, 2, 3, 4, 5). 

    Der dritte Knopf soll die Artikel aufsteigend sortieren. Also Brot, Hammer Salzstangen, Weinberen und zuletzt Zangen.

    Die Sortierung geht wohl, aber immer unter Einbezugnahme der Gruppierung. Die Gruppierung möchte ich aber bei den letzten beiden Buttons nicht mehr.

    Vielen lieben Dank und ein guter Start in die neue Woche

    Sonntag, 28. September 2014 16:41