Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Dynamisches Gruppieren und Sortieren im Bericht

Begonnen von Beate1953, Oktober 22, 2013, 13:38:32

⏪ vorheriges - nächstes ⏩

Beate1953

Hallo,

ich gruppiere in einem Bericht per VBA. Dazu habe ich folgenden Code, bei dem Sortwert1 und Sortwert2 das Ergebnis zweier Optionsgruppen auf einem Formular sind. KopfBezTyp etc sind Textfelder in dem jeweiligen Gruppenkopf, die den Namen der jeweiligen Gruppe anzeigen:

Select Case Sortwert1
Case 1
       Me.GroupLevel(0).ControlSource = "Barcode"
Case 2
       Me.GroupLevel(0).ControlSource = "Bezeichnung (Typ, genaue Bezeichnung)"
       Me.KopfBezTyp.Visible = True
Case 3
       Me.GroupLevel(0).ControlSource = "Bezeichnung"
       Me.KopfBez.Visible = True
Case 4
        Me.GroupLevel(0).ControlSource = "Ort"
        Me.KopfOrt.Visible = True
Case 5
        Me.GroupLevel(0).ControlSource = "E-Check"
        Me.KopfECheck.Visible = True
Case 6
        Me.GroupLevel(0).ControlSource = "Datum"
        Me.KopfDatum.Visible = True
End Select
MsgBox ("Sortwert1 = " & Me.GroupLevel(0).ControlSource)


Select Case Sortwert2
Case 1
       Me.GroupLevel(1).ControlSource = "Barcode"
Case 2
       Me.GroupLevel(1).ControlSource = "Bezeichnung (Typ, genaue Bezeichnung)"
Case 3
       Me.GroupLevel(1).ControlSource = "Bezeichnung"
Case 4
        Me.GroupLevel(1).ControlSource = "Ort"
Case 5
        Me.GroupLevel(1).ControlSource = "E-Check"
Case 6
        Me.GroupLevel(1).ControlSource = "Datum"
End Select
MsgBox ("Sortwert2 = " & Me.GroupLevel(1).ControlSource)


Der SELECT Case Sortwert1 klappt auch mit einer neuen Seite für einen neuen Gruppenkopf.
Der SELECT Case Sortwert2 klappt genauso - soll er aber eigentlich ohne Neue Seite!

Was muss ich da noch einfügen?

Viele Grüße
Beate1953


Beate1953

Hallo,

jetzt habe ich das ForceNewPage eingefügt, aber es hat keinen Effekt:

Select Case Sortwert2
Case 1
       Me.GroupLevel(1).ControlSource = "Barcode"
Case 2
       Me.GroupLevel(1).ControlSource = "Bezeichnung (Typ, genaue Bezeichnung)"
       Me.Section("Detailbereich").ForceNewPage = 0
Case 3
       Me.GroupLevel(1).ControlSource = "Bezeichnung"
       Me.Section("Detailbereich").ForceNewPage = 0
Case 4
        Me.GroupLevel(1).ControlSource = "Ort"
        Me.Section("Detailbereich").ForceNewPage = 0
Case 5
        Me.GroupLevel(1).ControlSource = "E-Check"
        Me.Section("Detailbereich").ForceNewPage = 0
Case 6
        Me.GroupLevel(1).ControlSource = "Datum"
        Me.Section("Detailbereich").ForceNewPage = 0
End Select
MsgBox ("Sortwert2 = " & Me.GroupLevel(1).ControlSource)


Nur wenn ich 1 (statt 0) verwende, bewirkt es, dass nach jedem DS eine neue Seite kommt.

Muss ich das Commando evtl. anderswo einfügen?

Viele Grüße
Beate1953

DF6GL

Hallo,


"einer neuen Seite für einen neuen Gruppenkopf."


Wieso dann "Detailbereich"?

Beate1953

Hallo,

Jetzt sieht es so aus, hat aber immer noch keine Auswirkung; er macht weiterhin einen Seitenwechsel.

Select Case Sortwert2
Case 1
       Me.GroupLevel(1).ControlSource = "Barcode"
Case 2
       Me.GroupLevel(1).ControlSource = "Bezeichnung (Typ, genaue Bezeichnung)"
       Me.Section("Gruppenkopf1").ForceNewPage = 0
Case 3
       Me.GroupLevel(1).ControlSource = "Bezeichnung"
       Me.Section("Gruppenkopf2").ForceNewPage = 0
Case 4
        Me.GroupLevel(1).ControlSource = "Ort"
        Me.Section("Gruppenkopf3").ForceNewPage = 0
Case 5
        Me.GroupLevel(1).ControlSource = "E-Check"
        Me.Section("Gruppenkopf4").ForceNewPage = 0
Case 6
        Me.GroupLevel(1).ControlSource = "Datum"
        Me.Section("Gruppenkopf5").ForceNewPage = 0
End Select
MsgBox ("Sortwert2 = " & Me.GroupLevel(1).ControlSource)


Vielleicht sollte ich bei SELECT Case Sortwert2 statt des Gruppierens ohne Seitenumbruch lieber einen Sortierbefehl eingeben? Also gruppieren nach Sortwert1 und innerhalb jeder Gruppe sortieren nach Sortwert2. Aber welchen Sortierbefehl sollte ich da verwenden?



Ich habe noch ein weiteres Problem und zwar macht er bei SELECT Case Sortwert1 zwar richtig Gruppen mit Seitenwechsel aber die erste angezeigte Gruppe ist nicht diejenige, die nach dem Alphabet die erste sein sollte. Muss ich da noch eine Sortierung reinbringen? Aber wie? Hier nochmal der ganze Code:

Select Case Sortwert1
Case 1
       Me.GroupLevel(0).ControlSource = "Barcode"
Case 2
       Me.GroupLevel(0).ControlSource = "Bezeichnung (Typ, genaue Bezeichnung)"
       Me.KopfBezTyp.Visible = True
Case 3
       Me.GroupLevel(0).ControlSource = "Bezeichnung"
       Me.KopfBez.Visible = True
Case 4
        Me.GroupLevel(0).ControlSource = "Ort"
        Me.KopfOrt.Visible = True
Case 5
        Me.GroupLevel(0).ControlSource = "E-Check"
        Me.KopfECheck.Visible = True
Case 6
        Me.GroupLevel(0).ControlSource = "Datum"
        Me.KopfDatum.Visible = True
End Select
MsgBox ("Sortwert1 = " & Me.GroupLevel(0).ControlSource)


Select Case Sortwert2
Case 1
       Me.GroupLevel(1).ControlSource = "Barcode"
Case 2
       Me.GroupLevel(1).ControlSource = "Bezeichnung (Typ, genaue Bezeichnung)"
       Me.Section("Gruppenkopf1").ForceNewPage = 0
Case 3
       Me.GroupLevel(1).ControlSource = "Bezeichnung"
       Me.Section("Gruppenkopf2").ForceNewPage = 0
Case 4
        Me.GroupLevel(1).ControlSource = "Ort"
        Me.Section("Gruppenkopf3").ForceNewPage = 0
Case 5
        Me.GroupLevel(1).ControlSource = "E-Check"
        Me.Section("Gruppenkopf4").ForceNewPage = 0
Case 6
        Me.GroupLevel(1).ControlSource = "Datum"
        Me.Section("Gruppenkopf5").ForceNewPage = 0
End Select
MsgBox ("Sortwert2 = " & Me.GroupLevel(1).ControlSource)

Vielen Dank im Voraus

Beate1953