Hallo Stefan,
ich mache mal paar Annahmen, da die Angaben etwas spärlich sind:
1. du benutzt MS Access
2. deine Tabelle hat einen eindeutige ID (primary Key), z.B. ID vom Typ Autowert
3. deine tbl_Archiv ist identisch aufgebaut (bei ID allerdings kein Autowert sondern Zahl (long int)
Dann würde ich folgendermaßen vorgehen:
a) erstelle ein Formular mit der Datenherkunft tbl_Mediplan (z.B. in der Standardansicht Datenblatt)
b) erstelle beim Ereignis "Beim Löschen" folgende Prozedure:
Private Sub Form_Delete(Cancel As Integer)
DoCmd.RunSQL "INSERT INTO Tbl_archiv SELECT * FROM tbl_mediplan where ID = " & Me!ID
End Sub
Das Löschen wird über die Access Standardverfahren ausgeführt (indem du im Formular auf den Datensatzzeiger gehst und die Taste "DEL" drückst. Das Ereignis "Beim Löschen" wird VOR dem eigentlichen Löschvorgang ausgelöst. Du solltest jedoch beachten das das Löschen und das INSERT-Statement unabhängige Statements sind. Mein Beispiel prüft nicht, ob das eine oder andere Statement nicht ausgeführt worden ist und es so zu inkonsistenzen kommen kann.
Solltest du MSSQL oder ORACLE verwenden, dann empfehle ich eine Triggerfunktion, die es unter Access leider nicht gibt.
Gruß
Ralf