Wie vermeide ich doppelte Datensätze in einer Access-Tabelle, wenn ich Daten aus einem Unterformular eingebe?


0

Ich habe eine MS Access-Datenbank mit drei Tabellen:

Foods (Id, Food_Name, Food_Desc)
Ingredients (Id, Ingredient_Name)
IngredientsFoods_mm (Id, Id_FoodsFK, Id_IngredientsFK)

... in einer Beziehung von vielen zu vielen, wo IngredientsFoods_mm ist der Tisch, der die beiden anderen verbindet.

Jetzt habe ich ein Formular mit einem Unterformular erstellt, um Lebensmittelzutaten zuzuweisen. Im Hauptformular gibt es die Food_Name und Food_Desc Felder und im Unterformular gibt es die Ingredient_Name Feld (ein Kombinationsfeld). Scheint gut zu funktionieren, aber das Problem ist, dass wenn ich eine Zutat eingebe, die bereits in der ist Ingredients Anstatt den entsprechenden Datensatz zuzuweisen, wird ein doppelter Datensatz erstellt.

Ich habe versucht, dies zu vermeiden, indem ich einen Index ohne Duplikate in der Ingredient_Name Feld, aber dann sagt mir Access, dass dies einen Integritätsfehler erzeugen würde.

Die Frage ist, wie ich vermeiden kann, dass doppelte Datensätze in der Datenbank erstellt werden Ingredients Tabelle bei der Eingabe von Informationen aus dem Unterformular?

Antworten:


0

Ich denke, Ihr Problem ist, dass Sie versuchen, in einzufügen Ingredients Tabelle, wenn Sie die Beziehung zwischen einfügen sollen Foods.Id und Ingredients.Id durch die IngredientsFoods_mm Tabelle.

Stellen Sie sicher, dass Ihre Beziehungen gut definiert sind und dass die IngredientsFoods_mm Der Primärschlüssel von wird aus beiden gebildet Id_FoodsFK und Id_IngredientsFK.

Hier ist die Erklärung der Beziehungen im Zugang. Es wird erläutert, wie ein korrektes Viele-zu-Viele-Beziehungsmodell erstellt wird. https://support.microsoft.com/en-us/kb/304466


Ich denke, dass die Beziehung gut definiert ist und die PK in der Id_IngredientsFK wird bereits von der Id_FoodsFK und Id_IngredientsFK (Ich habe den von Ihnen bereitgestellten Link bereits gelesen und ja, die DB hat dieselbe Struktur). Die Sache ist, dass es bereits einige Aufzeichnungen im Internet gibt Ingredients Tabelle, aber ich möchte sie zuweisen oder neue Datensätze erstellen und sie mit der verknüpfen Foods Tabelle.
Kureno
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.