Probleme bei m:n Beziehung

Hallo zusammen!

Ich habe ein Problem in meiner Datenbank. (Access 2007)
Und zwar habe ich eine m:n Beziehung und ein dazugehöriges Formular mit Unterformular.
Es handelt sich um ein Rechnungsformular mit einem Unterformular in dem ich die Rechnungspositionen eintrage.
Wenn ich im Formular Daten eingebe, funktioniert eigentlich alles perfekt. Ich kann in der unteren Navi-Leiste die einzelnen Rechnungen durchschalten und erhalte im Unterformular die dazugehörigen Positionen.

Ich habe jetzt einen Bericht erstellt und will diesen Bericht dann laut Rechnungsnummer aufrufen.
Bei mir passiert jetzt immer folgendes:
Im Bericht werden mir zu einer Rechnungsnummer alle Positionen angezeigt. Auch die, die ursprünglich nicht zu dieser Rechnungsnummer gehören. Was mache ich da falsch?
Vielleicht kann mir jemand einen Tipp geben.
Danke schon mal!
LG Andreas

Hallo!

Ich habe ein Problem in meiner Datenbank. (Access 2007)

ok, ist die Datenbank kaputt?

Und zwar habe ich eine m:n Beziehung und ein dazugehöriges
Formular mit Unterformular.

das hört sich eher nach einer 1:n Beziehung an.

Es handelt sich um ein Rechnungsformular mit einem
Unterformular in dem ich die Rechnungspositionen eintrage.

ok, also Standard

Wenn ich im Formular Daten eingebe, funktioniert eigentlich
alles perfekt. Ich kann in der unteren Navi-Leiste die
einzelnen Rechnungen durchschalten und erhalte im
Unterformular die dazugehörigen Positionen.

so sollte es sein

Ich habe jetzt einen Bericht erstellt und will diesen Bericht
dann laut Rechnungsnummer aufrufen.

und wie machst du das?

Bei mir passiert jetzt immer folgendes:
Im Bericht werden mir zu einer Rechnungsnummer alle Positionen
angezeigt.

das hört sich gut an, so sollte es sein

Auch die, die ursprünglich nicht zu dieser Rechnungsnummer gehören.

definiere „ursprünglich“
Könntest du diesen Punkt ausführlicher beschreiben? Wie kommt es zu solchen Positionen?

Was mache ich da falsch?

ohne nähere Angaben müsste man raten…
Wie ist das Ufo mit dem Bericht verbunden?

Vielleicht kann mir jemand einen Tipp geben.

poste hier bitte auch die technischen Details, ohne diese können wir hier gar nicht helfen.

Grüße aus Rostock
Wolfgang
(Netwolf)

Also ich beschreibe mal den Aufbau meiner Datenbank

Ich habe eine Tabelle Rechnungen mit den Feldern (Rechnungsnummer (PK),Rechnungsdatum und Kunde)

Eine Tabelle Rechnungsdetails (ID(PK), Datum, Baustelle, PositionIDRef, Anzahl)

Und eine Tabelle Positionen (ID(PK), Bezeichnung, Einheit, Preis, Gültig bis)

So stelle ich mir die Funktion vor.(die eigentlich in der Formularansicht auch funktioniert).

Der Anwender erstellt eine neue Rechnung und gibt Kundenname und Rechnungsdatum an. Rechnungsnummer wird automatisch vergeben.
Dannach kann der Anwender im Unterformular die einzelnen Positionen eingeben. Das heißt er gibt Datum und Baustelle an, und wählt die Position die zu verrechnen ist aus einer Kombibox aus. Dannach wird der Preis/Stk und die Einheit automatisch in das Formular eingetragen.
Somit braucht der Nutzer nur mehr die Anzahl eingeben und der Gesamtpreis wird berechnet.
Dies habe ich über eine Abfrage gelöst, indem ich alle Felder die ich im Unterformular benötige in eine Abfrage zusammengefasst habe.

Wie gesagt, in der Formularansicht funktioniert alles.

Wenn ich jetzt einen Bericht (Rechnung) erstelle, bekomme ich zum Beispiel für Rechnung Nr 1 die gesamten Positionen angezeigt. Auch diese die unter Rechnung Nr 2 gespeichert sind usw.

Nur zur Verständlichkeit. Es handelt sich um ein Transportunternehmen welches sowohl nach Stunden, als auch nach Tonnen oder m³ verrechnet. Deshalb habe ich eine dritte Tabelle (Positionen) erstellt um den Anwender die Schreibarbeit zu ersparen. Ich habe somit auch nur eine Maske in der alle Rechnungen geschrieben werden können, somit kann ich auch alte Rechnungen die benötigt werden über eine einzige Maske wieder aufrufen.

Wenn jemand weiß was ich falsch mache, bzw. einen besseren Vorschlag für den gesamten Aufbau der Datenbank hat wäre ich demjenigen sehr dankbar.

LG Andreas

Also ich beschreibe mal den Aufbau meiner Datenbank

Ich habe eine Tabelle Rechnungen mit den Feldern
(Rechnungsnummer (PK),Rechnungsdatum und Kunde)

ok

Eine Tabelle Rechnungsdetails (ID(PK), Datum, Baustelle,
PositionIDRef, Anzahl)

da fehlt die Rechnungsnummer als Beziehung und noch einiges mehr

Und eine Tabelle Positionen (ID(PK), Bezeichnung, Einheit,
Preis, Gültig bis)

ok

Beziehungen werden/sollten immer über gleiche Felder in beiden Tabellen hergestellt werden.

So würde ich es machen:

Tabelle TBL_Rechnung:
ID_Rechnung Typ Autowert / Primary Key
ID_Kunde Typ Zahl -> vorausgesetzt es gibt eine Kundentabelle
Re_Datum Typ Datum
Re_Nummer Typ Zahl

plus die üblichen Felder für die Buchhaltung:
Summe_Netto Typ Währung
Summe_Brutto Typ Währung
MwSt_Satz Typ Zahl
MwSt_Betrag Typ Währung
OP Typ Währung
usw.

Tabelle TBL_RechnungsDetails
ID_Re_Details Typ Autowert / Primary Key
ID_Rechnung Typ Zahl
ID_Baustelle Typ Zahl -> vorausgesetzt es gibt eine Tabelle mit Baustellen (sollte es geben)
ID_Position Typ Zahl
AnzahlMenge Typ Zahl
Bezeichnung Typ Text
Einheit Typ Text
Einzel_Preis Typ Währung
Gesamt_Preis Typ Währung

So sollten deine Tabellen aussehen, dann kannst du über die IDs die richtigen Beziehungen herstellen.

Grüße aus Rostock
Wolfgang
(Netwolf)