Frage: Ich habe eine Adressverwaltung aufgebaut, die aus zwei Tabellen „Adressen“ und „Ansprechpartner“ besteht. Die Tabellen sind über ein Feld „AdressNr“ verbunden; die Ansprechpartner werden als Unterformular im Hauptformular für die Adressen angezeigt. Die zweite Tabelle ist notwendig, weil pro Kunde durchaus 20 oder mehr Ansprechpartner vorhanden sein können und ich das gern flexibel handhaben möchte. Nun habe ich folgendes Problem: Wenn ich einen Kunden lösche, verbleiben die damit verbundenen Datensätze eventueller Ansprechpartner in der Tabelle „Ansprechpartner“ und müssen dort manuell gelöscht werden.
Wie lässt sich das automatisieren?
Antwort: Sie müssen dazu die beiden Tabellen in Beziehung bringen und referenzielle Integrität einschalten.
Dann kümmert sich Access darum, dass beim Löschen eines Hauptdatensatzes auch alle Detaildatensätze gelöscht werden. So geht’s:
- Wählen Sie das Menü EXTRAS-BEZIE – HUNGEN an (Access 2003, 2002/XP und 2000) bzw. klicken Sie im Register „Entwicklertools“ in der Gruppe „Einblenden/Ausblenden“ auf BEZIE – HUNGEN (Access 2010/2007).
- Fügen Sie die beiden Tabellen hinzu.
- Ziehen Sie das Feld „AdressNr“ aus der Tabelle „Adressen“ auf das Feld „AdressNr“ der Tabelle „Ansprechpartner“, um eine Beziehung herzu – stellen.
- Doppelklicken Sie auf die Verbindungslinie.
- m nachfolgenden Dialog aktivieren Sie die Option MIT REFERENTIELLER INTEGRITÄT und dann die Option LÖSCHWEITERGABE AN VERWANDTE DATENSÄTZE.
- Klicken Sie auf OK und blenden Sie das Fenster „Beziehungen“ wieder aus. In Zukunft sorgt Access automatisch dafür, dass beim Löschen von Hauptdatensätzen auch die dazugehörenden Detaildatensätze gelöscht werden.
In Zukunft sorgt Access automatisch dafür, dass beim Löschen von Hauptdatensätzen auch die dazugehörenden Detaildatensätze gelöscht werden.