Sicherun und Löschen
Karl Donaubauer
Gesendet: 16.05.14 13:44
Betreff: RE: Sicherun und Löschen



Elite Veteran

Beiträge: 848
50010010010025
Ort: Wien
Hallo!

dreho - 04.05.14

in einem Formular lösche ich Datensätze (Mitglieder eines Vereins).

Ist es möglich, vor dem Löschen den Datensatz in eine "Austritt-Tabelle" zu sichern.
Es muss so gesteuert sein, dass ein Löschen eines Datensatzes gar nicht möglich ist, bevor der Datensatz gesichert wird.

Ich bin in Sachen VBA nicht der Profi .

Du solltest die Datensätze nicht löschen sondern in der Tabelle z.B. ein Ja/Nein-Feld "Aktiv" haben, dass du stattdessen umsetzt. Noch besser wäre ein Datumsfeld "Austrittsdatum", dass du statt des Löschens mit dem aktuellen Datum versiehst. Jedenfalls kannst du dann in Abfragen usw. nach diesem Feld filtern und musst nicht alle Auswertungen usw. doppelt führen.

Wenn es partout eine Auslagerungs- und Löschfunktionalität sein muss, dann gehe ich einmal davon aus, dass du das in einem Formular frmMitglieder veranstalten willst:

- Erstelle eine Anfügeabfrage, die alle Felder von tblMitglieder nach tblAustritt überträgt.
- Als Kriterium beim Primärschlüsselfeld, z.B. MitgliederId, schreibst du: Forms!frmMitglieder!MitgliederId
Das sorgt dafür, dass nur der aktuelle DS im Formular übertragen wird.
- Erstelle eine Löschabfrage für tblMitglieder mit dem gleichen Kriterium.
- Im Formular verbietest du das Löschen und ermöglichst es nur über eine Schaltfläche. Beim Klicken der Schaltfläche führst du diesen Code aus:

DoCmd.OpenQuery "Deine Anfügeabfrage"
DoCmd.OpenQuery "Deine Löschabfrage"

Ich habe absichtlich eine Methode angeführt, mit der Warnmeldungen kommen. Falls dich das stört, dann s. den letzten Absatz über Execute in http://www.donkarl.com?FAQ2.4

-----
Servus
Karl
*********
https://www.donkarl.com/devcon Access-Online-Konferenz 18.+19.4.
Access Forever: https://www.accessforever.org
Access News: https://www.youtube.com/playlist?list=PLVCeBbJIMDvdJ8ghMbEakJ6_EQyvy...
Access-Entwickler-Konferenz: https://www.donkarl.com/?aek
Top of the page Bottom of the page