PDA

Vollständige Version anzeigen : Datensatz löschen "spezial"


<LeiMa>
03.01.2002, 09:03
Ich erstelle einen Datensatz (Rechnung), zu dem verschiedene Unterdatensätze (Artikel) eingegeben werden. Daher wird der Rechnungsdatensatz mit .update auch gespeichert, weil sonst keine Artikel zugeordnet werden können.
Nun gibt es eine Abbruch-Schaltfläche, und die soll den aktuellen Rechnungs-Datensatz wieder löschen, was mit me.undo nicht geht, weil ja vorher schon ein update war.
Wie mach ich's am besten?

Jochum Rainer
03.01.2002, 09:52
Hallo!
Ich programmiere momemtan etwas ähnliches und habe einen anderen Lösungsweg gewählt.
Ich erstelle mir ein FO mit ungebunden Textfeldern und mit einem UF das sich auf eine TMP Detailtabelle bezieht.
Der User kann die Rechnungsdaten und Detaildaten eingeben. Durch Klick des Speicheren Buttons werden die Daten in die entsprechenden Tabellen weggeschrieben. Beim Klick auf den Abbruch Button wird die TMP Tabelle gelöscht und die Bearbeitung beendet.
Zusätzlich gibt es noch einen Button Letzten Vorgang suchen, der dann Sinn macht, wenn der einzelne Kunde immer wieder die gleichen oder ähnlichen Teile erhält.

Gruesse
Rainer Jochum

<LeiMa>
03.01.2002, 10:35
Danke für Deine Idee. Das ist sicher eine sehr saubere Variante, weil die eigentliche Tabelle gut gegen inkonsistenten geschützt ist. Auch im Netz bringts Vorteile.

Mein Anliegen war eher rein technisch gemeint, welche Syntax da am effizientensten arbeitet.

Gustav Kurz
03.01.2002, 10:41
<font size="2" face="verdana">Hallo,
so wie Rainer das beschreibt ist der richtige Ansatz!

Eine weitere Möglichkeit besteht das Löschen über eine Löschabfrage zu veranlassen.

' alle Datesätze des Unterformulars löschen, die die gleiche Rechnungsnummer haben, wie die aktuell auf Deinem Rechnungsformular angezeigte Rechnungsnummer...
a) "DELETE * FROM [DeineUFTabelle] WHERE [Rechnungs-Nr] =" & Me!Rechnungsnummer & ";"

' den Hauptformulardatensatz löschen...
b) DoCmd.RunCommand acCmdDeleteRecord

...und noch eine weitere Möglichkeit besteht darin, wenn man in der Datenbank im Fenster "Beziehungen" zwischen der Tabelle z.B. "Rechnungen" und der Detailtabelle z.B. "Rechnungspositionen" die sogenannte Löschweitergabe aktiviert, dann werden von Access automatisch beim Löschen einer Rechnung die dazugehörenden Detaildatensätze gelöscht!

Gruß
Gustav