Unterbericht zweimal verknüpfen

29/02/2008 - 13:23 von Hans-Ulrich Krämer | Report spam
Hallo zusammen,

folgendes Problem: Ich möchte in einer Datenbank (Access 2003) zur
Prüfplanerstellung und Messwerterfassung einen Bericht generieren, der die
einzelnen Prüfungen, Messzeitpunkte und Messwerte zu Papier bringt.

Kurze Erlàuterung zum Datenmodell (verkürzt, darüber gibts noch Produkt- und
Plan-Tabellen):

tblPruefung (PK PruefungID)
In der Tabelle wird eine Prüfung (z.B. Wareneingangsprüfung) angelegt.

tblMerkmal (PK MerkmalID)
Diese Tabelle enthàlt die einzelnen Prüfmerkmale, die zu einer Prüfung
(s.o.) gehören.

tblMessung (PK MessungID)
Enthàlt den Prüfzeitpunkt, Prüfer etc.

tblMesswert (PK MesswertID)
Enthàlt die gemessenen Werte.

Die Tabellen sind so verknüpft:

tblPruefung.PruefungID == 1:n ==> tblMerkmal.PruefungID
"" == 1:n ==> tblMessung.PruefungID
tblMerkmal.MerkmalID == 1:n ==> tblMesswert.MerkmalID
tblMessung.MessungID == 1:n ==> tblMesswert.MessungID

Im Bericht habe ich im Detailbereich die Merkmale, rechts daneben ein
Unterbericht "rptMessung" und in diesem Unterbericht wiederum den
Unterbericht "rptMesswert".

Datenherkunft der Berichte:
rptMerkmal => eine SQL-Abfrage
rptMessung => tblMessung
rptMesswert => tblMesswert

Verknüpft sind die Berichte so:
rptMerkmal ==> rptMessung (über PruefungID)
rptMessung ==> rptMesswert (über MessungID UND MerkmalID)

Das Problem ist nun, dass ich im Bericht rptMessung ja die MerkmalID nicht
habe, da Datenherkunft "tblMessung". Ich muss jedoch sowohl die MessungID
als auch die MerkmalID mit dem rptMesswert verknüpfen, da mir sonst zu viele
Messwerte angezeigt werden. Ich habe mir so beholfen, dass beim Ereignis
"Beim Formatieren" des Detailbereichs rptMessung die MerkmalID von
rptMerkmal in ein ungebundenes Textfeld auf rptMessung kopiert wird
(Me!MerkmalID = Me.Parent!MerkmalID).

Das klappt auch eigentlich gut. Nur wird jetzt der Detailbereich von
rptMessung (obwohl auf vergößerbar eingestellt) nicht mehr vergrößert, wenn
der rptMesswert mehr Platz benötigt (weil mehr Messwerte anliegen). Der
Detailbereich bleibt einfach so groß, wie ich ihn manuell einstelle. Mehr
Messwerte (als bei der eingestellten Detailbereichshöhe möglich) werden
nicht angezeigt und liegen weniger an, bleibt der restliche Detailbereich
leer.

Ich vermute, dass dieses Verhalten dadurch kommt, dass ich die MerkmalID zur
Laufzeit in den rptMessung kopiere.

Gibts eine andere Möglichkeit, den rptMesswert zweimal (MessungID und
MerkmalID) zu verknüpfen? Oder gibts vielleicht einen ganz anderen
Lösungsansatz?

Schon jetzt vielen Dank für einen Tipp.

MfG
H.-U. Kràmer
 

Lesen sie die antworten

#1 Thomas Möller
29/02/2008 - 18:33 | Warnen spam
Hallo Hans-Ulrich,

Hans-Ulrich Kràmer schrieb:
folgendes Problem: Ich möchte in einer Datenbank (Access 2003) zur
Prüfplanerstellung und Messwerterfassung einen Bericht generieren,
der die einzelnen Prüfungen, Messzeitpunkte und Messwerte zu Papier
bringt.
Kurze Erlàuterung zum Datenmodell (verkürzt, darüber gibts noch
Produkt- und Plan-Tabellen):

tblPruefung (PK PruefungID)
In der Tabelle wird eine Prüfung (z.B. Wareneingangsprüfung) angelegt.

tblMerkmal (PK MerkmalID)
Diese Tabelle enthàlt die einzelnen Prüfmerkmale, die zu einer Prüfung
(s.o.) gehören.

tblMessung (PK MessungID)
Enthàlt den Prüfzeitpunkt, Prüfer etc.

tblMesswert (PK MesswertID)
Enthàlt die gemessenen Werte.

Die Tabellen sind so verknüpft:

tblPruefung.PruefungID == 1:n ==> tblMerkmal.PruefungID
"" == 1:n ==> tblMessung.PruefungID
tblMerkmal.MerkmalID == 1:n ==> tblMesswert.MerkmalID
tblMessung.MessungID == 1:n ==> tblMesswert.MessungID

Im Bericht habe ich im Detailbereich die Merkmale, rechts daneben ein
Unterbericht "rptMessung" und in diesem Unterbericht wiederum den
Unterbericht "rptMesswert".

Datenherkunft der Berichte:
rptMerkmal => eine SQL-Abfrage
rptMessung => tblMessung
rptMesswert => tblMesswert

Verknüpft sind die Berichte so:
rptMerkmal ==> rptMessung (über PruefungID)
rptMessung ==> rptMesswert (über MessungID UND MerkmalID)

Das Problem ist nun, dass ich im Bericht rptMessung ja die MerkmalID
nicht habe, da Datenherkunft "tblMessung". Ich muss jedoch sowohl die
MessungID als auch die MerkmalID mit dem rptMesswert verknüpfen, da
mir sonst zu viele Messwerte angezeigt werden. Ich habe mir so
beholfen, dass beim Ereignis "Beim Formatieren" des Detailbereichs
rptMessung die MerkmalID von rptMerkmal in ein ungebundenes Textfeld
auf rptMessung kopiert wird (Me!MerkmalID = Me.Parent!MerkmalID).

Das klappt auch eigentlich gut. Nur wird jetzt der Detailbereich von
rptMessung (obwohl auf vergößerbar eingestellt) nicht mehr
vergrößert, wenn der rptMesswert mehr Platz benötigt (weil mehr
Messwerte anliegen). Der Detailbereich bleibt einfach so groß, wie
ich ihn manuell einstelle. Mehr Messwerte (als bei der eingestellten
Detailbereichshöhe möglich) werden nicht angezeigt und liegen weniger
an, bleibt der restliche Detailbereich leer.

Ich vermute, dass dieses Verhalten dadurch kommt, dass ich die
MerkmalID zur Laufzeit in den rptMessung kopiere.

Gibts eine andere Möglichkeit, den rptMesswert zweimal (MessungID und
MerkmalID) zu verknüpfen? Oder gibts vielleicht einen ganz anderen
Lösungsansatz?



zur Eingrenzung ein paar Fragen:

Beim Steuerelement für den Sub-Sub-Report (rptMesswert) sind die
Eigenschaften vergrößerbar und verkleinerbar auf "Ja" eingestellt?
Im Detailbereich des Sub-Reports (rptMessung) sind die Eigenschaften
vergrößerbar und verkleinerbar auf "Ja" eingestellt?
Beim Steuerelement für den Sub-Report (rptMessung) sind die
Eigenschaften vergrößerbar und verkleinerbar auf "Ja" eingestellt?
Im Detailbereich des Hauptberichts sind die Eigenschaften vergrößerbar
und verkleinerbar auf "Ja" eingestellt?

CU
Thomas

Homepage: www.Team-Moeller.de

Ähnliche fragen