PDA

Vollständige Version anzeigen : Bericht mit zwei 1:n-Beziehungen


gandtimo
06.07.2006, 13:00
Hallo,

hab ein kleines Problem:
Ich habe drei Tabellen:
firma, berichte, kontakte
In firma sind generelle Infos zur Firma gespeichert, in kontakte die Kontaktdaten verschiedener Ansprechpartner und in berichte Berichte von einzelnen Besuchen in der Firma.
Sowohl in kontakte wie auch in berichte gibt es das Feld id_firma, durch das der jeweilige Datensatz einem Datensatz in firma zugeordnet wird.

Jetzt hab ich ein Formular, in dem die Firmendaten und in zwei Tabellen die Kontakte und die Berichte angezeigt und bearbeitet werden können.
Jetzt hätte ich gerne einen Button "Drucken", der mir einen Bericht ausspuckt, in dem alle Daten der grade aufgerufenen Firma erscheinen, also die Inhalte von firma und die dazugehörigen Datensätze aus kontakte und berichte.

Wie mach ich das?

Viele Grüße

Timo

J_Eilers
06.07.2006, 13:11
Hi,

1) Erstelle eine Abfrage, die alle 3 Tabellen mit einem Join verbindet und deine entsprechenden Datenfelder enthält.
2) Erstelle anhand der Abfrage einen Bericht.
3) Verwende eine Schaltfläche im Formular, die deinen Bericht gefiltert öffnet. Ein CodeBeispiel:

DoCmd.OpenReport "DeinBericht", acViewPreview, "id_firma = " & Me!id_firma

gandtimo
06.07.2006, 13:31
Aber eigentlich brauch ich ja zwei Abfragen ...
Eine:

SELECT firma.*, kontakte.* FROM firma LEFT JOIN kontakte ON kontakte.id_firma=firma.id
Und eine

SELECT firma.id, berichte.* FROM firma LEFT JOIN berichte ON berichte.id_firma=firma.id
Denn die Berichte und die Kontakte stehen in keiner Beziehung zu einander.

Anne Berg
06.07.2006, 13:45
Ich würde das mit zwei getrennten Unterberichten lösen, über die Firmen-Id mit dem Hauptbericht verknüpft.

jackryan
06.07.2006, 13:53
sorry das ich mich hier einmische, aber ich hätte hierzu auch eine frage.
ich habe einen bericht mithilfe einer abfrage erstellt (der bericht soll nur bestimmte daten enthalten) wie übergebe ich denn die parameterabfrage? in dem fall von gandtimo die id_firma??

gandtimo
06.07.2006, 13:57
Und wie verknüpfe ich die beiden Unterberichte mit dem Hauptbericht?
Ich hab die Unterberichte (jeweils einfache SELECT's der Tabellen berichte und kontakte) erstellt und in den eigentlichen Bericht per Drag&Drop gezogen.
Aber verknüpft über die "id_firma" sind die ja trotzdem nicht ...

J_Eilers
06.07.2006, 14:12
@gandtimo Erstelle in den Abfragen der Unterberichte einfach einen Berichtsbezug.

@jackryan Du kannst in der Abfrage einen Formularbezug einbauen oder eben mit der WhereCondition der OpenReport-Methode arbeiten.

gandtimo
06.07.2006, 14:26
Tschuldigung, dass ich nachfrage, aber wie erstelle ich den Bezug?

Anne Berg
06.07.2006, 14:26
Den Hauptbericht bindest du an die Tabelle Firma oder eine entsprechende Abfrage, dann kannst du die UBs mit dem HB uber die Firmen-ID verknüpfen.

@jackryan: wie meinst du das mit der Parameterabfrage? Du kannst doch eine Bedingung bei der ID eintragen, z.B. "=[Bitte Firmen-ID eingeben]".

gandtimo
06.07.2006, 14:38
Ja, aber WO mache ich das? Wo kann ich denn Beziehungen von Berichten erstellen? Ich weiß ja, wie ich Beziehungen zwischen Tabellen erstelle, aber nicht, wie zwischen Berichten.

Anne Berg
06.07.2006, 14:55
Schau dir die Eigenschaften des UB-Steuerelements an! (verknüpfen von/nach)

gandtimo
06.07.2006, 20:39
Super!
Danke, ich hatte immer nur in den Eigenschaften des Berichtes geschaut und nicht in denen vom Unterbericht.
Klappt jetzt alles. Danke.