Office: (Office 2016) Datensätze in Bericht nach Anzahl sortieren (VBA)

Helfe beim Thema Datensätze in Bericht nach Anzahl sortieren (VBA) in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo liebes Forum! ich lasse mir mit Hilfe eines Suchformulars einen Bericht ausgeben, in dem die Datensätze gruppiert dargestellt werden. Zusätzlich... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von fabian2503, 3. November 2020.

  1. Datensätze in Bericht nach Anzahl sortieren (VBA)


    Hallo liebes Forum!

    ich lasse mir mit Hilfe eines Suchformulars einen Bericht ausgeben, in dem die Datensätze gruppiert dargestellt werden. Zusätzlich lasse ich mir im Kopfbereich mit einem Textfeld die Anzahl der Datensätze je Gruppe anzeigen.

    Nun möchte ich die Gruppen nach der Anzahl der Datensätze absteigend sortieren.

    Ich habe gelesen, dass dies nicht ohne weiteres funktioniert, bzw. nur über Unterformulare.

    Gibt es hierfür auch eine VBA Lösung, so dass der Bericht korrekt sortiert wird?

    Dankeschön!

    :)
     
    fabian2503, 3. November 2020
    #1
  2. Hallo,
    bestimme in einer Abfrage bereits die Anzahl je Gruppe.
    Etwa so:
    Code:
    Als Gruppe ist der Primärschlüssel der Gruppe zu verwenden. Für die Gruppe sollte es ja eine Tabelle geben.
    Das Feld Anz aus der Abfrage kannst Du im Bericht zur Sortierung verwenden.
     
    gpswanderer, 4. November 2020
    #2
  3. Danke für den Ansatz!

    Gibt es aber auch eine Lösung ohne eine neue Abfrage zu erstellen?

    VG
     
    fabian2503, 4. November 2020
    #3
  4. Datensätze in Bericht nach Anzahl sortieren (VBA)

    Hallo,
    Du brauchst keine neue Abfrage, das kannst Du in der jetzigen Abfrage für den Bericht machen.
     
    gpswanderer, 5. November 2020
    #4
  5. Hmm, irgendwie komme ich damit nicht weiter.
    Ich habe den Code an meine Belange angepasst, aber es wird immer nur die Zeile gezählt und als Ergebnis kommt "1" heraus. Die Gruppierung an sich hat auch keine eigene Tabelle, sondern ist eine Spalte meiner Mastertabelle. Im Bericht gruppiere ich mit der Gruppierungsfunktion nach der Spalte (z.B. Fahrzeugklasse).

    Beispiel:

    1. Ebene: Mercedes A-Klasse Anzahl: XY
    Datensatz 1
    Datensatz 2
    Datensatz 3
    ...

    1. Ebene Mercedes C-Klasse Anzahl: XY
    Datensatz 1
    Datensatz 2
    Datensatz 3
    ...

    usw.

    Es hängt immer davon ab, welche Konfiguration ich in den Comboboxen im Formular treffe.

    Soll es weiterhin mit deinem Code funktionieren?
     
    fabian2503, 5. November 2020
    #5
  6. Hallo,

    interessant und erforderlich wäre jetzt
    1. die Abfrage, die die Daten liefert
    2. Deine Codeanpassung
    3. die Auswirkung der Comboboxen auf die Daten
    4. Einstellungen zu Gruppierung/Sortierung im Bericht

    Ansonsten bräuchte man eine Glaskugel.

    Gruß
    Fred
     
    Fred_BS, 5. November 2020
    #6
  7. Hallo,
    Das ist eine Fehlerbeschreibung die den Blutdruck in die Höhe schraubt.
    Ist die Anpassung richtig ?
    Wenn Du es nicht weißt, woher soll ich es wissen ?

    Zeige also bitte auch mal den SQL Text der Abfrage für den Bericht (mit der Anpassung).
    Mein Vorschlag ist auch kein Code im wörtlichen Sinn, sondern das ist der Ausdruck für ein berechnetes Feld in der Abfrage.
    Mir scheint, da liegen auch noch Strukturfehler vor, für die Fahrzeugklasse sollte es eine eigene Tabelle geben und die Klasse wird als Zahl gespeichert.
     
    gpswanderer, 5. November 2020
    #7
  8. Datensätze in Bericht nach Anzahl sortieren (VBA)

    Wahrscheinlich ist die Anpassung nicht richtig *Smilie

    Fahrzeugklasse war auch eher ein Beispiel. Hier handelt es sich um Texte.

    Ich habe nun auch 2 Screenshots vom Formular und vom finalen Bericht angehängt. Im Formular wähle ich aus den Comboboxen die gewünschten Kombinationen aus. Dementsprechend generiert sich die Abfrage und der Bericht. Unterhalb der Comboboxen werden mir alle Einträge mit den entsprechenden Kriterien aufgelistet.

    Hier der SQL-Text der Abfrage:

    SELECT tblSparte.VHG_CODE, tblFamilie.FAM_CODE, tblReparaturdaten.FAM_GES, tblReparaturdaten.OPR_VERK, tblReparaturdaten.OPT_TEXT, tblReparaturdaten.TAD_GES, [tblAnzahl G/V-Arbeiten].COG_VERK
    FROM tblSparte INNER JOIN (tblFamilie INNER JOIN ([tblAnzahl G/V-Arbeiten] INNER JOIN tblReparaturdaten ON [tblAnzahl G/V-Arbeiten].COG_VERK = tblReparaturdaten.COG_VERK) ON tblFamilie.FAM_CODE = tblReparaturdaten.FAM_CODE) ON tblSparte.VHG_CODE = tblReparaturdaten.VHG_CODE
    WHERE (((tblSparte.VHG_CODE) Like "*" & [Formulare]![frmReparaturdaten V2]![cbxSparte] & "*") AND ((tblReparaturdaten.FAM_GES) Like "*" & [Formulare]![frmReparaturdaten V2]![cbxFamilie] & "*") AND ((tblReparaturdaten.OPT_TEXT) Like "*" & [Formulare]![frmReparaturdaten V2]![cbxArbeitsvorgänge] & "*") AND (([tblAnzahl G/V-Arbeiten].COG_VERK) Like "*" & [Formulare]![frmReparaturdaten V2]![cbxKonstruktionsgruppe] & "*"));

    Im Ausdrucksgenerator habe ich in einer neuen Spalte diesen Code eingetragen:
    DomAnzahl("*";[qryReparaturdaten V2];"TAD_GES= " & [TAD_GES])

    "TAD_GES" ist die Spalte, nach der im Bericht gruppiert wird.
     
    fabian2503, 5. November 2020
    #8
  9. Hallo,
    zeige den SQL Text mit dem Ausdruck, der braucht ja auch eine Namenszuweisung. Außerdem habe ich Tabellename geschrieben und nicht Abfragename.
    Versuche es so:
    Code:
    Das Anz vor DomAnzahl wird benötigt und dieses Feld sollte auch im Bericht verwendet werden.

    Sind cbx... sind ja Kombinationsfelder, da macht Like und der Joker keinen Sinn, verwende = und lösche die Joker.
    Und wenn Du die Abfrage wieder zeigst, bitte mit dem Ausdruck.

    Die ganze Abfrage zeigt, dass die Tabellenstruktur sehr verbesserungsbedürftig ist. Normalerweise filtern Kombifelder über die Schlüsselzahl, daher sollte es für jedes Kombi eine extra Tabelle geben mit einem Primärschlüssel der dann auch gespeichert wird und nicht die Klartexte. Wo kommen jetzt die Einträge her für die Kombis, Werteliste ?

    Es ist mir immer wieder ein Rätsel, warum man falsche Daten als Beispiel nimmt, was soll das bringen ?
    Sonst nix wie Verwirrung.
     
    gpswanderer, 5. November 2020
    #9
  10. Den Code habe ich in der Entwurfsansicht der Abfrage in der Zeile "Feld" eingegeben. Nun erscheint ein Fenster, in dem ich einen Parameterwert zu tblReparaturdaten eintragen soll.
     
    fabian2503, 5. November 2020
    #10
  11. Hallo,
    und woher soll ich jetzt wissen, ob Du es richtig gemacht hast ?

    Zeige also bitte die vollständige Abfrage.
     
    gpswanderer, 5. November 2020
    #11
  12. Zur Sicherheit habe ich noch einen Screenshot der Abfrage mit beigefügt.

    Like "*" & habe ich wieder mit rein genommen, weil mir dann keine Ergebnisse mehr angezeigt wurden.

    Hier die SQL-Sicht:
    SELECT tblSparte.VHG_CODE, tblFamilie.FAM_CODE, tblReparaturdaten.FAM_GES, tblReparaturdaten.OPR_VERK, tblReparaturdaten.OPT_TEXT, tblReparaturdaten.TAD_GES, [tblAnzahl G/V-Arbeiten].COG_VERK, DCount("*",[tblReparaturdaten],"TAD_GES= '" & [TAD_GES] & "'") AS Anz
    FROM tblSparte INNER JOIN (tblFamilie INNER JOIN ([tblAnzahl G/V-Arbeiten] INNER JOIN tblReparaturdaten ON [tblAnzahl G/V-Arbeiten].COG_VERK = tblReparaturdaten.COG_VERK) ON tblFamilie.FAM_CODE = tblReparaturdaten.FAM_CODE) ON tblSparte.VHG_CODE = tblReparaturdaten.VHG_CODE
    WHERE (((tblSparte.VHG_CODE) Like "*" & [Formulare]![frmReparaturdaten V2]![cbxSparte] & "*") AND ((tblReparaturdaten.FAM_GES) Like "*" & [Formulare]![frmReparaturdaten V2]![cbxFamilie] & "*") AND ((tblReparaturdaten.OPT_TEXT) Like "*" & [Formulare]![frmReparaturdaten V2]![cbxArbeitsvorgänge] & "*") AND (([tblAnzahl G/V-Arbeiten].COG_VERK) Like "*" & [Formulare]![frmReparaturdaten V2]![cbxKonstruktionsgruppe] & "*"));
     
    fabian2503, 5. November 2020
    #12
  13. Datensätze in Bericht nach Anzahl sortieren (VBA)

    Hallo,
    lade ein abgespecktes Beispiel hoch, mit anonymen Daten.
     
    gpswanderer, 5. November 2020
    #13
  14. Darf ich kurz folgendes zur Erinnerung anmerken:
    Code:
     
    CatboyJones, 5. November 2020
    #14
  15. Hallo,

    grr, hatte ich übersehen, bzw. nicht darauf geachtet, weil in meinem Vorschlag in #2 waren sie ja drin.
    Code:
     
    gpswanderer, 5. November 2020
    #15
Thema:

Datensätze in Bericht nach Anzahl sortieren (VBA)

Die Seite wird geladen...
  1. Datensätze in Bericht nach Anzahl sortieren (VBA) - Similar Threads - Datensätze Bericht Anzahl

  2. Access Berichte

    in Microsoft Access Hilfe
    Access Berichte: ich habe einen Bericht erstellt mit Datenbasis einer Abfrage. Nun möchte ich in einem Formular unter Verwendung eines Kombinationsfeldes einen Datensatz auswählen und diesen im Bericht ausgeben....
  3. Neuste&Geänderte Datensätze drucken

    in Microsoft Access Hilfe
    Neuste&Geänderte Datensätze drucken: Es bezieht sich jetzt zwar auf keinem aktuellen Projekt, aber mich würde mal interessieren, wie man es am geschicktesten einrichtet, dass bei einem Bericht nur geänderte und/oder neue Datensätze...
  4. Anzahl gruppierter Datensätze in Bericht zählen

    in Microsoft Access Hilfe
    Anzahl gruppierter Datensätze in Bericht zählen: In einem Bericht werden Baumkontrollen so gruppiert, dass die Bäume (durch eindeutige BaumID gekennzeichnet) strassenweise zusammengefasst. Unter dem Namen der Strasse stehen dann die jeweiligen...
  5. Bericht nur mit aktuellem Datensatz aus Formular anzeigen und drucken

    in Microsoft Access Hilfe
    Bericht nur mit aktuellem Datensatz aus Formular anzeigen und drucken: Guten Tag, ich habe eine Datenbank im Rahmen meiner Ausbildung zum Industriekaufmann erstellt. Diese Datenbank beinhaltet z.B. die Tabellen: mitarbeiter, psaArtikel, psaPosten,psaAusgabe. Die...
  6. Drucken von Datensätzen per Bericht als PDF-Datei

    in Microsoft Access Hilfe
    Drucken von Datensätzen per Bericht als PDF-Datei: Hallo & guten Abend, Dank der tollen Unterstützung im Thread Drucken von Datensätzen über Bericht mit Vergabe des Dateinamens aus Tabellenfeldern kann ich die selektierten Datensätze über einen...
  7. Datensätze im Bericht nebeneinander anzeigen lassen

    in Microsoft Access Hilfe
    Datensätze im Bericht nebeneinander anzeigen lassen: Hallo, und zwar hab ich ein Problem. Ich hab einen Bericht erstellt mit den dazu nötigen Daten aus einer Abfrage. Das Problem ist, dass im Bericht die Datensätze zwar angezeigt werden, aber nur...
  8. Abbrechen des Druckvorgangs eines Berichts, der keine Datensätze enthält

    in Microsoft Access Tutorials
    Abbrechen des Druckvorgangs eines Berichts, der keine Datensätze enthält: Abbrechen des Druckvorgangs eines Berichts, der keine Datensätze enthält Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden