Probleme mit der referenziellen Integrität (Access 2007)

Probleme mit der referenziellen Integrität (Access 2007)

Ich bitte höflich um die Hilfe eines Spezialisten, vorzugsweise eines Datenbankentwicklers oder -administrators.

Ich habe dieses Problem beim Festlegen einer referenziellen Integrität für zwei Tabellen festgestellt. Das Festlegen der referenziellen Integrität ist nicht das Problem, aber die Herausforderung für mich besteht darin, dass nach dem Festlegen dieser Referenzintegrität keine Nullwerte in der anderen Tabelle zulässig sind. Dies bedeutet, dass beide Tabellen wahrscheinlich die gleiche Anzahl von Zeilen enthalten sollten, damit die beiden Tabellen übereinstimmen.

Dies ist ein Beispiel dafür, was ich genau tun möchte:

  • Ich erstelle Tabellen, eine mit dem Namen „Stock“, die für die Speicherung von Waren oder Zubehör gedacht ist, die im Geschäft verfügbar sind, und eine weitere Tabelle mit dem Namen „Customer_Details“.
  • Ich möchte in beiden Feldern ein Feld festlegen (also ein Feld mit dem Namen „Verfügbarkeit“), das ein Ja/Nein-Datentyp sein soll. Dieses Feld sollte in beiden Feldern vorhanden sein.
  • Jedes Mal, wenn ein Kunde ein bestimmtes Zubehörteil kauft, das aus der Tabelle „Lager“ ausgewählt wird, ändert sich automatisch der Wert des Felds „Verfügbarkeit“ im Lager.

Ich weiß nur, und habe auch versucht, die referenzielle Integrität im Beziehungsfenster festzulegen, aber das funktioniert leider nicht.

Ich bin höflich auf der Suche nach jemandem, der mir erklären kann, wie ich vorgehen soll, da ich Access 2007 noch nicht kenne.

Antwort1

„Die Herausforderung für mich besteht darin, dass nach dem Festlegen dieser referenziellen Integrität keine Nullwerte in der anderen Tabelle zulässig sind.“

NulWerte sind zulässig, es gibt jedoch Einschränkungen:

Sie können jedoch einen Nullwert in den Fremdschlüssel eingeben. Dadurch wird angegeben, dass die Datensätze nicht verknüpft sind. Sie können beispielsweise keine Bestellung haben, die einem Kunden zugewiesen ist, der nicht existiert. Sie können jedoch eine Bestellung haben, die niemandem zugewiesen ist, indem Sie einen Nullwert in das Feld CustomerID eingeben.


QuelleSo definieren Sie Beziehungen zwischen Tabellen in einer Access-Datenbank

Referenzielle Integrität

Die referenzielle Integrität ist ein Regelsystem, mit dem Access sicherstellt, dass die Beziehungen zwischen Datensätzen in verknüpften Tabellen gültig sind und dass Sie verknüpfte Daten nicht versehentlich löschen oder ändern. Sie können die referenzielle Integrität festlegen, wenn alle der folgenden Bedingungen erfüllt sind:

  • Das passende Feld aus der Primärtabelle ist ein Primärschlüssel oder hat einen eindeutigen Index.
  • Die verknüpften Felder haben denselben Datentyp. Es gibt zwei Ausnahmen. Ein AutoNumber-Feld kann mit einem Number-Feld verknüpft werden, dessen FieldSize-Eigenschaft auf „Long Integer“ eingestellt ist, und ein AutoNumber-Feld, dessen FieldSize-Eigenschaft auf „Replication ID“ eingestellt ist, kann mit einem Number-Feld verknüpft werden, dessen FieldSize-Eigenschaft auf „Replication ID“ eingestellt ist.
  • Beide Tabellen gehören zur selben Access-Datenbank. Wenn es sich bei den Tabellen um verknüpfte Tabellen handelt, müssen sie im Access-Format vorliegen und Sie müssen die Datenbank öffnen, in der sie gespeichert sind, um die referenzielle Integrität festzulegen. Für verknüpfte Tabellen aus Datenbanken in anderen Formaten kann die referenzielle Integrität nicht erzwungen werden.

Bei Verwendung der referenziellen Integrität gelten die folgenden Regeln:

  • Sie können keinen Wert in das Fremdschlüsselfeld der verknüpften Tabelle eingeben, der nicht im Primärschlüssel der Primärtabelle vorhanden ist. Sie können jedoch einen Nullwert in das Fremdschlüsselfeld eingeben. Dadurch wird angegeben, dass die Datensätze nicht verknüpft sind. Sie können beispielsweise keinen Auftrag haben, der einem Kunden zugewiesen ist, der nicht existiert. Sie können jedoch einen Auftrag haben, der niemandem zugewiesen ist, indem Sie einen Nullwert in das Feld CustomerID eingeben.
  • Sie können einen Datensatz aus einer Primärtabelle nicht löschen, wenn in einer verknüpften Tabelle entsprechende Datensätze vorhanden sind. Sie können beispielsweise einen Mitarbeiterdatensatz nicht aus der Tabelle „Mitarbeiter“ löschen, wenn dem Mitarbeiter in der Tabelle „Bestellungen“ Bestellungen zugewiesen sind.
  • Sie können einen Primärschlüsselwert in der Primärtabelle nicht ändern, wenn dieser Datensatz verknüpfte Datensätze hat. Sie können beispielsweise die ID eines Mitarbeiters in der Tabelle „Mitarbeiter“ nicht ändern, wenn diesem Mitarbeiter in der Tabelle „Bestellungen“ Bestellungen zugewiesen sind.

verwandte Informationen