Neuigkeiten:

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

Mobiles Hauptmenü

Zwei Unterberichte im Hauptbericht.....

Begonnen von WilliR, Juli 16, 2025, 15:00:04

⏪ vorheriges - nächstes ⏩

WilliR

Hallo miteinander,

Danke für Eure Antworten. Natürlich habt Ihr Recht.
Aber natürlich gibt es einen Primärschlüssel in der Tabelle. ID = Nr
Sowie ca. 25 Tabellen insgesamt.
Die Tabelle "WuerfelF01W01" ist nicht verknüpft mit einer anderen Tabelle.
Da ich Prüfzeugnisse ausstelle, brauche ich einen unveränderlichen Datenstand.
d.H. die Tabelle "WuerfelF01W01" beinhaltet alle relevanten Daten für den Ausdruck.
Nochmal.....ich bin definitiv Access Laie. Habe die Datenbank für ca, 15 Jahren
Autodidaktisch zusammengestellt. Mit viel Input von diversen Foren. Das war Suuuper und
richtig viel Arbeit.
Ich wollte nun einfach drei Spalten nebeinander im Bericht haben. ca. 7 Felder jeweils vom 2ten und 3ten Nachfolgenden Datensatz untereinander.
z.B.
RezeptSorte 1.5342.102
Betongüte C 25/35

Prüfbericht             1.123456.2       1.123456.3       1.123456.4
Liefersch.Nr.           178542             178545             178549
Entnahme Datum    10.07.2025       10.07.2025      10.07.2025
Brobenahme             Baustelle        Baustelle          Baustelle
u.s.w

Die Fett dargestellten Daten sollten aus den jeweils folgenden Datensätzen mit dem Filter( Identische "RezeptSorte" dargestellt werden.

V.G. Willi

Knobbi38

Hallo Willi,

du weißt, daß dein Datenmodell falsch ist und du das besser ändern solltest.

Also die DS haben alle die selbe Rezeptsorte und die wäre dann für einen Prüfbericht eindeutig?
Wie kannst du den 2. und 3. Folgedatensatz unzweifelhaft, auch in der passenden Reihenfolge, erkennen? Und führe jetzt nicht einfach die Reihenfolge bei der Anzeige an, daß ist in einer DB nicht sichergestellt! Es muß schon etwas logisches sein.

Gruß Knobbi38

WilliR

Hallo Knobbi38,
Nicht alle Datensätze haben die gleiche RezeptSorte.
Wenn ich im Listenfeld einen Datensatz auswähle, hat dieser Probekörper eine bestimmte RezeptSorte.
Die nächsten zwei Datensätze auf dem Bericht müssen genau die gleiche "RezeptSorte" haben.
Es können auch Datensätze dazwischen angelegt worden sein mit anderer "RezeptSorte" Diese dürfen dann natürlich nicht berücksichtigt werden!
Die Sortierung sollte (EntnahmeDatum - Aufsteigend) und (LieferscheinNr - Aufsteigend) sein.

Dankeschön un V.G. Willi


Knobbi38

Also wenn ich dich richtig verstanden habe, ist die Rezeptsorte pro Probekörper eindeutig?

Wenn dem so ist, kannst du eine Abfrage erstellen und eine fortlaufenden Nummer hinzufügen. 

Anbei mal ein Quick&Dirty PoC, wie man so etwas machen könnte.

Gruß Knobbi38



trebuh

Ich gehe mal davon aus, daß es sich hier letztendlich um die Darstellung geht, wo welche Betoncharge verbaut wurde.
Aber wieso dann nur der 2 und 3 Datensatz der gleichen Rezeptsorte?

Spielt es keine Rolle, wenn von der Rezeptur noch mehrere Baustellen beliefert wurden?
Wenn z.B. anhand des Prüfwürfels eine falsche Zusammensetztung festgestellt wurde,
wie siehst Du dann, welche Baustellen davon betroffen sind?
So siehst Du ja nur maximal 3.

Wie die Vorredner schon erwähnten, scheint auch mir das Datenmodell falsch zu sein.

WilliR

Hallo miteinander,

Dankeschön "Knobi38", ich hab das jetzt mal so umgesetzt. Und...es wird genau so dargestellt wie es sein soll.
Wenn ich den Bericht Drucke oder Öffne wird nach einem Parameterwert "Lfd" gefragt.
Wenn ich die 1 eingebe, wird alles passend dargestellt. Hast Du einen Tip an was das liegen könnte?

Die zwei Anfangsbuchstaben "An" sind ja statisch im Kriterium hinterlegt. Kann das auch so wie in meinem Fall
das Feld "RezeptSorte" (die ja zwingend bei allen drei Datensätzen gleich sein muss) vom aktuellen Datensatz abgeleitet werden? Dynamisch halt. Also vom Datensatz 1 im Bericht.

@trebuh..... Drei Datensätze sind oft Normativ bei einer Beprobung vorgeschrieben. Daher kommt die Anforderung - 3 Datensätze auf dem Prüfbericht.
Alle Betonagen sind nachträglich anhand der Lieferscheinnummern, Betoniertagebücher, u.s.w. bestimmten Orten und Bauteile exakt zuzuordnen. Das muss natürlich so sein.

v.G. Willi
 

WilliR

Hallo miteinander,

Ich hab das jetzt über die Kriterien in der Abfrage geregelt.
Super...so hab ich mir die Darstellung im Bericht vorgestellt.
Aber jetzt kommt erst mal - den Bericht hübsch gestalten -

Danke für die Hinweise und Tipps

V.G. Willi

WilliR

Hallo miteinander,

jetzt habe ich das Thema nochmal geöffnet.
Der Bericht ist nun fertig, die drei Datensätze werden perfekt angezeigt. Aber jetzt hätte ich noch eine Frage.
bzw. ein kleines Problem hat sich ergeben.
Wahrscheinlich für Euch ein Klax. :-)

Im Bericht habe ich ein Textfeld eingefügt "DruckFest3"
In diesem Textfeld sollte nun der Mittelwert der drei Datensätze aus dem Feld "DruckFest" angezeigt werden.
Die Datensatzquelle des Berichtes ist "qryWuerfelF01W01_3"

Könnt Ihr mir bitte nochmal helfen wie ich das am besten umsetze.

Vielen Dank im Voraus

L.G. Willi
 

MzKlMu

Hallo,
mit dem richtigen Datenmodell (das mit der extra Tabelle für die Prüfungen) wäre das ein Klacks. Access kennt den Befehl (AVG/Mittelwert) der sich aber nur auf eine Spalte einer Tabelle (oder Abfrage) beziehen kann.
So wie das jetzt ist musst Du einem Feld die Felder für den Mittelwert addieren. Dabei musst immer auf das entsprechene Feld Bezug nehmen.
= (Feld1 + Feld2 + Feld3) / 3Für die Feldbezüge muss jeweil die vollständige Referenz für den Bezug angegeben werden. Es ist ein Unterschied, ob das Feld auf dem Hauptbereicht oder den Unterberichten steht.

Zu den Feldbezügen siehe hier:
Feldbezüge

So rächt sich das falsche Datenmodell es fällt einem immer mehr auf die Füße.
Gruß Klaus

Knobbi38

Hallo Willi,

Klaus hat nicht so ganz Unrecht. In deinem Fall, wo du die Kriterien für den Bericht ja kennst, kannst du auch im Bericht einen Ausdruck für die Textbox verwenden. Ein Zugriff auf die Unterberichte würde ich vermeiden, um für später nicht noch mehr Baustellen aufzumachen.

https://learn.microsoft.com/de-de/office/vba/api/access.application.davg

Gruß Knobbi38

WilliR

Hallo zusammen,

danke für Eure Hinweise. Ich sitz auf der Leitung.
Momentan gibt die Abfrage ja genau das erwünschte Ergebnis aus.
Wie muss ich das jetzt bewerkstelligen dass von den drei Datensätzen der Wert "DruckFest" als Mittel in meinem Bericht im Feld "Mittel3" angezeigt wird.
Muss ich der Abfrage ein Feld hinzufügen?
Oder welches Kriterium muss ich wo einfügen?
Bitte helft mir nochmal, ich komm nicht weiter!
Vielen Dank
V.G. Willi

MzKlMu

#26
Hallo,
in #23 habe ich beschrieben wie es geht. Das ist nicht so trivial wie Du das gerade denkst. Da das für eine Datenbank eine unübliche vorgehensweise ist, hat auch niemend eine Lösung parat. Da musst Du Dich selbst mit beschäftigen. In der Abfrage braucht es kein extra Feld und ein Kriterium auch nicht.
In den FAQ 4.2 steht auch wie das geht mit den Feldbezügen. Unten in den FAQ ist ein zusätzlicher Link.


Ich kann es nur immer wieder erwähnen, mit dem richtigen Datenmodell wie es für eine Datenbank gehört wäre das ein Klacks.
=Mittelwert(Druckfest)Als Eintrag im Feld Mittel3, mehr bräuchte es da nicht.
Du solltest doch mal über eine Umstrukturierung nachdenken.
Gruß Klaus

Knobbi38

#27
@klaus:
Ich glaube nicht, das die Funktion Mittelwert() hier weiter hilft.


Hallo Willi,

das Umzusetzen sollte jetzt nicht zu schwer fallen, weil für den Mittelwert die Reihenfolge der 3 DS nicht relevant ist.

Im Hauptbericht stehen die 3 DS doch zur Verfügung. Also kannst du in der gewünschten Textbox einen Ausdruck (wie im Link beschrieben) eingeben, der die gleiche Datenquelle wie der Hauptbericht verwendet und damit den Mittelwert (DAVG() oder in einem Ausdruck DomMittelwert()) über das gewünschte Feld berechnen.

Anbei habe ich mal das Beispiel dahingehend erweitert.

Gruß Knobbi38

MzKlMu

@Ulrich 
natürlich hilft hier Mittelwert nicht, das habe ich auch nicht geschrieben. Da habe ich mich ja auf ein richtiges Datenmodell bezogen. Ich wollte damit ja nur aufzeigen wie einfach es wäre. Lies einfach mal meinen letzten Absatz noch mal.  ;D
Gruß Klaus

Knobbi38

#29
@klaus:

Sicherlich habe ich den Absatz gelesen, aber auch mit einem passendem Datenmodell müßte man mit AVG() das als Unterabfrage einbauen. In einem Report ist es m.M.n. einfacher, den Mittelwerteinfach per Ausdruck mit DomMittelwert() oder DAVG() zu ermitteln.

Aber gut, das ist eher eine persönliche Stil-Frage.

VG Ulrich