Datensätze anfügen in Haupt- und Unterformular
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 schreiben
Antwort 1 von Marie vom 17.11.2019, 17:26 Options
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 vom 17.11.2019, 18:35 Options
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)
Antwort 3 von Marie vom 17.11.2019, 19:33 Options
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.htmlEigentlich ne supersache, zuhause ne Vorlesung sich reinzuziehen!
Gruß Marie
Antwort 4 von Walli vom 17.11.2019, 22:53 Options
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.
Antwort 5 von Marie vom 18.11.2019, 00:21 Options
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
Antwort 6 von Walli vom 18.11.2019, 10:59 Options
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!