Supportnet / Forum / Datenbanken
Datensätze anfügen in Haupt- und Unterformular
Frage
Hallo,
folgendes Problem:
1. Tabelle: Firmen mit Firmen_ID als Primärschl.
2. Tabelle: Kostengruppe mit Kostengruppe_ID als Primärschl.
3. Tabelle: Zuordnung als Hilfstabelle (1:n Beziehung) mit Zuordnungs_ID als Primärschl. und Fremdschl.:Firmen_ID + Kostengruppen_ID
Jeder Firma sollen mehrere Kostengruppen zugeordnet werden können.
Nun habe ich ein Formular, indem die jeweilige Firma im Hauptformular und die dazugehörigen Kostengruppen in einem Unterformular angezeigt werden.
Mit dem Assistenten habe ich einen Button generiert, der über
"DoCmd.GoToRecord , , acNewRec"
einen neuen Datensatz hinzufügt.
So kann sowohl eine neue Firma angelegt werden, als auch eine Kostengruppe hinzugefügt werden.
Wird auch richtig in die Tabellen "Firma" und "Zuordnung" eingetragen.
Leider wird aber auch zusätzlich ein Datensatz in der Tabelle "Kostengruppe" eingetragen, mit einer neuen Kostengruppen_ID (wird inkrement vergeben), sodass die Kostengruppe dann dort doppelt vorhanden ist.
Wie kann ich das verhindern???
Antwort 1 von Marie
3. Tabelle: Zuordnung als Hilfstabelle (1:n Beziehung) mit Zuordnungs_ID als Primärschl. und Fremdschl.:Firmen_ID + Kostengruppen_ID
Wo kupfert ihr denn den Mist mit der Hilfstabelle ab? Diese Woche war hier schonmal eine Anfrage mit demselben Problem. Ich hab keine Ahnung was diese Hilfstabelle soll, tut mir leid. Wenn Du es selbst nicht weisst , dann probiers mal ohne die.
Gruß Marie
Antwort 2 von Walli
Hallo Marie,
danke für die schnelle Antwort.
Aber wie soll das ohne "Hilfstabelle" gehen, wenn ich doch keine doppelten Datensätze haben will und eine Firma mehreren Kostengruppen zugeordnet werden können soll.
(Ob ich das nun Hilfstabelle oder "Normalisierung" nenne ist eigentlich egal, ich denke ihr wisst was ich damit meine)
danke für die schnelle Antwort.
Aber wie soll das ohne "Hilfstabelle" gehen, wenn ich doch keine doppelten Datensätze haben will und eine Firma mehreren Kostengruppen zugeordnet werden können soll.
(Ob ich das nun Hilfstabelle oder "Normalisierung" nenne ist eigentlich egal, ich denke ihr wisst was ich damit meine)
Antwort 3 von Marie
Nö,ich programmiere seit Jahren und habe letzte Woche zum ersten mal von einer solchen Hilfstabelle gehört. Keine Ahnung was Du damit willst.
Aber ich habe hier eine Vorlesung der Uni Köln gefunden, vielleicht hilft Dir die weiter?
http://www.uni-koeln.de/rrzk/multimedia/kurse/access-video/frames.html
Eigentlich ne supersache, zuhause ne Vorlesung sich reinzuziehen!
Gruß Marie
Aber ich habe hier eine Vorlesung der Uni Köln gefunden, vielleicht hilft Dir die weiter?
http://www.uni-koeln.de/rrzk/multimedia/kurse/access-video/frames.html
Eigentlich ne supersache, zuhause ne Vorlesung sich reinzuziehen!
Gruß Marie
Antwort 4 von Walli
Hallo Marie,
verstehe das Problem mit der "Hilfstabelle" nicht so ganz.
Ist das denn nicht ähnlich als hätte ich:
1. Tabelle: Kunden
2. Tabelle: Artikel
und 3. Tabelle: Bestellungen (Hilfstabelle)?
Dann wären doch Kunden und Artikel die Stammdaten (wie bei mir Firmen und Kostengruppen) und Bestellungen analog dazu meine Zuordnungstabelle.
Wenn ich dann eine neue Bestellung eines Kunden eintrage (per Hauptformular neuen Kunden eintrage) und dann (per Unterformular eine Bestellung) Artikel bestelle, sollen die Artikel ja auch nicht in die Artikelliste erneut angehängt werden, sondern nur in der Bestelltabelle mit der entsprechenden Artikel ID und Kunden ID gespeichert werden.
Mir geht es eigentlich nur darum, wie ich dieses Anfügen (Anhängen in Artikel bzw. meine Kostengruppentabelle) verhindern kann.
verstehe das Problem mit der "Hilfstabelle" nicht so ganz.
Ist das denn nicht ähnlich als hätte ich:
1. Tabelle: Kunden
2. Tabelle: Artikel
und 3. Tabelle: Bestellungen (Hilfstabelle)?
Dann wären doch Kunden und Artikel die Stammdaten (wie bei mir Firmen und Kostengruppen) und Bestellungen analog dazu meine Zuordnungstabelle.
Wenn ich dann eine neue Bestellung eines Kunden eintrage (per Hauptformular neuen Kunden eintrage) und dann (per Unterformular eine Bestellung) Artikel bestelle, sollen die Artikel ja auch nicht in die Artikelliste erneut angehängt werden, sondern nur in der Bestelltabelle mit der entsprechenden Artikel ID und Kunden ID gespeichert werden.
Mir geht es eigentlich nur darum, wie ich dieses Anfügen (Anhängen in Artikel bzw. meine Kostengruppentabelle) verhindern kann.
Antwort 5 von Marie
Na ja, wenn das vergleichbar ist, dann müsstest Du doch dein Beispiel in der Nordwind-Datenbank nachvollziehen können.
Irgendwie hab ich den Eindruck Du verwechselst alles. Verstehe ich das jetzt richtig, du wilst einer bereits vorhandenen Firma eine bereits vorhandene Kostengruppe zuordnen (das und nur das entsprciht Deiner vergleichstabelle Bestellungen) ?Stattdessen hast Du ein Formular wo Du gleichzeitig neue Firmen und neue Kostengruppen anfügen kannst? Dein Hauptformular muss deine Firmentabelle sein, Dein Unterformular Deine Hilfstabelle, in der Du einen neuen Datensatz anfügst, beispielsweise über ein Kombifeld mit den Kostengruppen. Du darfst aber nicht dann dem Kombifeld einen Datensatz anhängen, sondern musst dem Kombifeld die ID entnehmen und in Deine Hilfstabelle übertragen. Jetzt Klar? In diesem Formular darfst Du weder neue Firmen noch neue Kostengruppen eintragen können.
Die Zuordnungen kannst Du der Nordwind (Bestellungen, Kunden, Artikel) entnehmen.
gruß marie
Irgendwie hab ich den Eindruck Du verwechselst alles. Verstehe ich das jetzt richtig, du wilst einer bereits vorhandenen Firma eine bereits vorhandene Kostengruppe zuordnen (das und nur das entsprciht Deiner vergleichstabelle Bestellungen) ?Stattdessen hast Du ein Formular wo Du gleichzeitig neue Firmen und neue Kostengruppen anfügen kannst? Dein Hauptformular muss deine Firmentabelle sein, Dein Unterformular Deine Hilfstabelle, in der Du einen neuen Datensatz anfügst, beispielsweise über ein Kombifeld mit den Kostengruppen. Du darfst aber nicht dann dem Kombifeld einen Datensatz anhängen, sondern musst dem Kombifeld die ID entnehmen und in Deine Hilfstabelle übertragen. Jetzt Klar? In diesem Formular darfst Du weder neue Firmen noch neue Kostengruppen eintragen können.
Die Zuordnungen kannst Du der Nordwind (Bestellungen, Kunden, Artikel) entnehmen.
gruß marie
Antwort 6 von Walli
Stattdessen hast Du ein Formular wo Du gleichzeitig neue Firmen und neue Kostengruppen anfügen kannst?
Das war ein Mißverständnis, ich will zwar im Hauptformular neue Firmen anlegen können, im Unterformularjedoch dieser Firma bestimmte Kostengruppen (die vorhandenen aus der Tabelle Kostengruppen) zuordnen können.
Auch möchte ich bereits vorhandenen Firmen (weitere) Kostengruppen zuordnen können (weil der Dachdecker jetzt vielleicht nicht nur die Dacharbeiten, sondern auch die Klempnerarbeiten oder Zimmermannsarbeiten übernehmen kann).
Die Tabelle Kostengruppe soll aber an dieser Stelle nicht erweiterbar oder veränderbar sein, sondern dient nur als Quelle aus der die Kostengruppen mit der entsprechenden Kostengruppen ID ausgelesen werden (die nämlich in der Zuordnungstabelle mit Kostengruppen ID und Firmen ID verbunden sind).
Du darfst aber nicht dann dem Kombifeld einen Datensatz anhängen, sondern musst dem Kombifeld die ID entnehmen und in Deine Hilfstabelle übertragen.
Glaube, das ist der richtige Weg.
Ich schau mir das Beispiel in der Nordwind nochmal an.
Danke erstmal!
Das war ein Mißverständnis, ich will zwar im Hauptformular neue Firmen anlegen können, im Unterformularjedoch dieser Firma bestimmte Kostengruppen (die vorhandenen aus der Tabelle Kostengruppen) zuordnen können.
Auch möchte ich bereits vorhandenen Firmen (weitere) Kostengruppen zuordnen können (weil der Dachdecker jetzt vielleicht nicht nur die Dacharbeiten, sondern auch die Klempnerarbeiten oder Zimmermannsarbeiten übernehmen kann).
Die Tabelle Kostengruppe soll aber an dieser Stelle nicht erweiterbar oder veränderbar sein, sondern dient nur als Quelle aus der die Kostengruppen mit der entsprechenden Kostengruppen ID ausgelesen werden (die nämlich in der Zuordnungstabelle mit Kostengruppen ID und Firmen ID verbunden sind).
Du darfst aber nicht dann dem Kombifeld einen Datensatz anhängen, sondern musst dem Kombifeld die ID entnehmen und in Deine Hilfstabelle übertragen.
Glaube, das ist der richtige Weg.
Ich schau mir das Beispiel in der Nordwind nochmal an.
Danke erstmal!

