Neuigkeiten:

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

Mobiles Hauptmenü

Summe in Bericht fehlerhaft??

Begonnen von gromax, Oktober 07, 2014, 15:06:53

⏪ vorheriges - nächstes ⏩

DF6GL

Hallo,

ich kann diesen If-Bedingungen in SQL-Strings nicht viel abgewinnen..

Mein Vorschlag:

Zunächst die Tabellen im Beziehungsfenster so "spaltenmäßig" anzuordnen wie im Bild (um die Hierarchie der Tabellen zu erkennen) und die "Überflieger"-Beziehungen ( und -arten)  nochmal genau zu überdenken, ob die den Tatsachen entsprechen....(z. B. die 3 Beziehungslinien, die tbl_Schueler "hintergehen" und die Beziehungsart zwischen SuS_PS und SuS_FS).

Zudem gibt es IMH(orrible)O noch Optimierungspotential bzgl. der Normalisierung.


Wäre die Normalisierung vollständig umgesetzt, könnte eine Abfrage für den Bericht erstellt werden, die über alle Tabellen (entspr. den Beziehungen) verknüpft und alle Felder (--> Sternchen) aus allen Tabellen (oder aus den akt. nur benötigten) enthält.

Über ein z. B. als Where-Condition-Parameter übergebenes Kriterium (bei der Openreport-Methode) könnte der Bericht nach allen erdenklichen Daten gefiltert und Berechnungen im Bericht erledigt werden.



MaggieMay

#16
Hallo gromax,
ZitatJetzt habe ich die Abfrage in den Feldern reduziert, habe gruppiert und auch die "Anzahlen" der Schüler definiert, aber ...? Irgendetwas mache ich immer noch falsch! An den Ergebnissen ändert sich nichts!
es sind immer noch zu viele Felder in der Abfrage, reduziere sie auf die tatsächlich (für den Bericht) benötigten:{EIN_FS,} EIN_Name, AnzahlSchüler, Schuljahr1/2/3

Zitatder Bericht wird über ein Formular (aktuelles Schuljahr-letztes Schuljahr-nächstes Schuljahr) und dem darin definierten Filter aufgerufen
Das sollte allerdings bei Erstellung der Abfrage berücksichtigt werden, das Formular hättest du also nicht "unterschlagen" sollen.
Freundliche Grüße
MaggieMay

gromax

Hallo MaggieMay,

anbei die DB - jetzt mit Formular (nur "aktuelles Schuljahr") - und die abgespeckte Abfrage; ich dachte zur Berechnung von Schj1/2/3 müssten die zur Berechnung herangezogenen Felder ebenso Bestand der Abfrage sein. Man lernt halt immer wieder dazu!

Den Hinweis von DF6GL nehme ich sehr ernst, nur bin ich jetzt 2 Tage nicht da und für seine "Hausaufgabe" brauche ich vermutlich viel Zeit!

Viele Grüße
gromax

MaggieMay

Hallo gromax,
Zitatanbei die DB
was genau ist denn jetzt deine Frage dazu?
Freundliche Grüße
MaggieMay

gromax

Hallo MaggieMay,

ursprünglich war die Fragestellung die, wie ich die Dom-Funktion nun formulieren soll, um mittels derer die Anzahl der Schulen zu berechnen.
Du hattest Dich angeboten, in meine DB genauer reinzuschauen und hattest mir zur Bereinigung meiner Abfrage Tipps gegeben. Ich habe nach besten Wissen und ... diese Tipps umgesetzt - jedenfalls habe ich es versucht -, weiß aber immer noch nicht, wie ich diese Dom-Funktion formulieren soll?

Diese Antwort hat jetzt nur noch akademischen Wert, da ich mit der "laufenden Summe" über [=1] ja eine Lösung gefunden habe; der "akademische Wert" aber könnte zu meinem Verständnis der Dom-Funktionen beitragen.

DF6GL hatte während unserer Besprechung noch einen Beitrag zu meinem "Beziehungs-Chaos" formuliert, wofür ich mich hiermit ausdrücklich bedanken möchte; ich habe versucht, meine "Beziehungen" in Ordnung zu bringen und deshalb zur Draufsicht diese als Bild-Datei angehängt. Wenn es dazu noch etwas anzumerken gibt - gerne!

Viele Grüße und Danke
gromax

MaggieMay

#20
Hallo,

du brauchst überhaupt keine Dom-Funktion, wenn du in der Abfrage die Schüler zählst und sie im Bericht summierst.
Das funktioniert natürlich nicht, wenn du nach SuS_FS gruppierst und das hätte dir auffallen müssen, wenn du dir das Abfrageergebnis angesehen hättest.

Nimm also die Gruppierung der Spalte SuS_FS aus der Abfrage raus, dann brauchst du im Bericht lediglich zwei Textfelder für die Summe der Schülerzahl und die Anzahl der Schulen.

NACHTRAG:
Da auf die Gruppierung im Bericht nicht verzichtet werden kann, weil es unterschiedliche Zeiträume pro Einrichtung gibt, die u.U. im Bericht zusammengefasst werden müssen, ist die Lösung mit der Referenz auf die lfd. Nummer zur Anzeige der Anzahl Schulen wohl doch die einfachste. Die in der Abfrage ermittelte Schülerzahl muss dann sowohl im Detailbereich als auch im Berichtsfuß summiert werden. Eine Basis für den Einsatz von DCount liefert die Abfrage daher leider nicht.

NOCH EIN TIPP:
Du kannst beim Öffnen des Berichts aus dem Formular heraus einen OpenArgs-Parameter (1,2,3) mitgeben, und anhand dessen im Open-Ereignis des Berichts dem Textfeld für den Zeitraum das Datenfeld für das gewählte Schuljahr zuweisen:Private Sub Report_Open()
    If Not IsNull(Me.OpenArgs) Then _
       Me.BEA_Schulbesuchsjahr.ControlSource = "Schuljahr" & Me.OpenArgs
Mehrfache Berichtskopien brauchst du dafür also nicht.
Freundliche Grüße
MaggieMay

gromax

Hallo MaggieMay,

vielen Dank für Deine Geduld!
Ich brauch einfach länger als andere.

Alles Gute
gromax