Verknüpfte Daten löschen bei referentieller Integrität

Wenn Sie die Beziehung zweier Tabellen mit referentieller Integrität definiert haben und dabei die Löschweitergabe nicht aktiviert ist, können Sie Daten aus der Tabelle mit dem an der Beziehung beteiligten Primärschlüsselfeld nicht ohne weiteres löschen. Manchmal ist das aber dennoch erwünscht – beispielsweise, wenn die Daten zuvor in ein Archiv übertragen wurden. Wie Sie die Daten dann löschen, stellen wir in diesem Artikel vor.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 2102_VerknuepfteDatenLoeschen.accdb.

Warum löschen trotz deaktivierter Löschweitergabe

Referentielle Integrität mit deaktivierter Löschweitergabe definiert man, damit die Daten aus der mit dem Primärschlüsselfeld an der Beziehung beteiligten Tabelle nicht so einfach gelöscht werden können, wenn es in der Tabelle mit dem Fremdschlüsselfeld bereits mit dem zu löschenden Datensatz verknüpfte Datensätze gibt.

Oder an einem Beispiel erklärt: Angenommen, Sie verwalten Kunden und Bestellungen in den beiden Tabellen tblKunden und tblBestellungen, die über das Fremdschlüsselfeld KundeID in der Tabelle tblBestellungen und das Primärschlüsselfeld KundeID in der Tabelle tblKunden verknüpft sind. Außerdem ist für diese Beziehung referentielle Integrität ohne Löschweitergabe definiert. Dann können Sie einen Kunden nicht mehr löschen, wenn zu diesem Kunden bereits mindestens eine Bestellung vorliegt.

An der Bestellung hängen übrigens auch noch die Bestelldetails, wiederum über eine Beziehung mit referentieller Integrität und Löschweitergabe verknüpft (siehe Bild 1).

Tabellen der Beispieldatenbank

Bild 1: Tabellen der Beispieldatenbank

Warum sollte man solch einen Kunden dennoch löschen wollen Beispielsweise deshalb, weil dieser Kunde seit zehn Jahren nichts mehr bestellt hat und deshalb in eine Archivtabelle in einer anderen Datenbank übertragen werden soll.

Während die referentielle Integrität ohne Löschweitergabe im regulären Betrieb sicherstellt, dass keine Kunden gelöscht werden, für die es bereits Bestellungen gibt, erweist sie sich als hinderlich, wenn man diese Daten aus berechtigten Gründen doch einmal löschen möchte.

Access [basics]

Unser exklusives Angebot für Dich!

Access im Unternehmen
7,90 € im Monat*

(Das Abo ist jederzeit monatlich kündbar)

Hier geht’s weiter →

Die ersten 4 Wochen kostenlos testen – voller Zugriff auf alle Artikel, vollständigen Code und Beispieldatenbanken. Kein Risiko: Wenn es nicht passt, kündigst Du einfach innerhalb der ersten vier Wochen.

PayPal VISA Mastercard SEPA
Kostenlos & unverbindlich

Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?

Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?

In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.

Jetzt kostenloses Access-Audit anfordern →