online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon Walli vom 17.11.2019, 16:10 Options

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.html

Eigentlich 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!

Ähnliche Themen

Aus Access Daten in Excel anfügen
RalfH  08.02.2007 - 204 Hits - 4 Antworten

Unterformular mit toolbox/spreadsheet erstellt
mister  02.07.2007 - 168 Hits - 3 Antworten

Unterformular gefiltert, keine Änderung im Hauptformular
Problemchen87  13.04.2008 - 205 Hits - 4 Antworten

Suchen im Hauptformular + Unterformular
maxim66  27.05.2008 - 65 Hits -

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026