PDA

Vollständige Version anzeigen : Datensatz gleichzeitig aus 2 Tabellen löschen


DCStefano
24.11.2003, 14:34
Habe folgendes Problem:

Habe zwei Tabellen (Stammdaten & Sozialinfos) die in Beziehung zueinander stehen. Musste wegen den vielen Eingabefeldern zwei Aktualisierungsformulare anlegen (wollte Chef) um die Daten bei Bedarf zu bearbeiten (weiteres Kind, etc.). Habe nun im Formular (wo ich die Datensätze der Stammdaten aktualisiere) einen "Löschen"-Button eingefügt, um evtl. Mitarbeiter die die Firma verlassen löschen zu können.

Habe folgenden Code benutzt (bei einer Tabelle funktionierts):
Private Sub Befehl33_Click()
' Button "Datensatz löschen"
On Error GoTo Err_Befehl33_Click

If MsgBox("Wollen Sie den Datensatz wirklich löschen?", vbQuestion + vbYesNo, _
"Datensatz löschen") = vbYes Then
DoCmd.SetWarnings False
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
DoCmd.SetWarnings True
Meldungstitel = "Datensatz gelöscht"
Meldungsinhalt = "Der Datensatz wurde gelöscht!"
Debug.Print MsgBox(Meldungsinhalt, vbExclamation, Meldungstitel)
' Das Ansichtsformular wird neu sortiert
Forms![Ansicht_Mitarb_Stammdaten].OrderBy = "strName"
Forms![Ansicht_Mitarb_Stammdaten].OrderByOn = True
' Da nur der eine Datensatz angezeigt wird, müssen wir nun das Formular verlassen
DoCmd.Close
Else
Exit Sub
End If

Exit_Befehl33_Click:
Exit Sub

Err_Befehl33_Click:
MsgBox Err.Description
Resume Exit_Befehl33_Click
End Sub

Bekomme aber nun folgenden Fehler:

Der Datensatz kann nicht gelöscht oder geändert werden, da die Tabelle "Mitarbeiter_Sozial" in Beziehung stehende Datensätze enthält.

Zur Ergänzung: Ich kann sämtliche Felder bearbeiten und speichern, nur kann ich nun keine Datensätze mehr löschen.

Wer weiss Rat? Ich benutze Access '97.

rita2008
24.11.2003, 14:43
Am besten aktivierst Du die Löschweiterleitung für die Beziehung beider Tabellen.

mfg Rita

stpimi
24.11.2003, 14:45
Mach das Löschen zuerst in der Abhängigen Tabelle "Mitarbeiter_Sozial". Wegen der referentiellen Integrität kann der Datensatz in Mitarbeiter_Sozial ohne den Datensatz in der Haupttabelle nicht existieren. Umgekehrt aber sehr wohl.

Mfg, Michael

DCStefano
24.11.2003, 14:59
Hab die Löschweiterleitung verwendet, klappt genau so wie ich das haben wollte!

Danke für eure (rita2008 & stpimi) Hilfe!