Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

alle in Unterformular angezeigte Datensätze auf einmal löschen

Begonnen von Samurai2_de, Juni 23, 2015, 03:21:46

⏪ vorheriges - nächstes ⏩

Samurai2_de

Hallo ihr Wissenden!

Ich habe nach längerer Zeit mal wieder an meiner Datenbank werkeln müssen und bin auf ein neues Problem gestoßen:

Ich habe ein Abfrage erstellt, durch die eine Tabelle meiner Datenbank durchsucht und Datensätze, die bestimmten Kriterien entsprechen, in einem Unterformular angezeigt werden. Zu den angezeigten Feldern der Datensätze gehört u.a. der Primärschlüssel.

Ich möchte nun erreichen, dass die in dem Unterformular angezeigten Datensätze durch den Klick auf einen Knopf alle auf einmal gelöscht werden (es handelt sich hierbei in der Regel um veraltete Datensätze, die nicht weiter benötigt werden). Hier ist das Problem, dass die Primärschlüssel nicht aufeinanderfolgend sind, es kommen also Ergebnisse für die Primarschlüssel wie 15, 167, 1593, 3976 usw. zustande und es werden die zu diesen Primärschlüssel gehörenden Datensätze in dem Unterformular angezeigt.

Die Tabelle, aus der die Daten gezogen werden heißt "Tab_Kunden" und das Feld mit dem Primärschlüssel hat die Bezeichnung "ID". Das Suchformular, über das die Parameter zur Suche der zu löschenden Datensätze eingegeben werden, heißt "Suchformular" und das Unterformular, in dem das Ergebnis der Suche ausgegeben wird heißt "UFO_löschen_Kunden".

Ich hoffe sehr auf eure Hilfe, ich habe schon die halbe Nacht die Tiefen des Internets mit Mr. Google durchsucht aber bislang noch keinen Lösungsansatz gefunden. Ich vermute, dass ich die WHERE-Bedingung meiner Löschabfrage einfach nicht richtig hin bekomme und daher keine Lösung für das Problem finde.

Vielen Dank schon einmal an Alle, die sich über das Problem zusammen mit mir den Kopf zerbrechen mögen!

Mit Gruß aus der dunklen Nacht

Samurai2_de
"Vegetarier" ist das indianische Wort für "zu doof zum jagen"!

Ein Tag ohne Lachen ist ein verschenkter Tag!

MaggieMay

Hallo,

du brauchst doch nur aus der Auswahlabfrage eine Löschabfrage zu machen, d.h. du benutzt zum Löschen dasselbe Kriterium wie zum Anzeigen.
Freundliche Grüße
MaggieMay

Samurai2_de

Guten Morgen (für mich zumindest gefühlt)!

Ich habe auch daran gedacht, aus der Auswahlabfrage eine Löschabfrage zu machen. Hier liegt in meinen Augen nur folgendes Fehlerpotential, welches ich gerne ausschließen möchte:
Ein Benutzer stellt die gewünschten Parameter für eine Suche ein und führt die Suche aus. Das Ergebnis wird in dem Unterformular angezeigt und der Benutzer prüft das Suchergebnis über das Unterformular und ist damit zufrieden. Jetzt wird (beabsichtigt oder nicht) ein oder sogar mehrere Parameter der Suchabfrage geändert und erst danach auf den "alles löschen"-Knopf gedrückt. Nun werden nicht mehr die im Unterformular angezeigten, sondern die mit der neuen Suchabfrage eigentlich gefundenen Datensätze gelöscht.
Daher wäre es meiner Ansicht nach wirklich schöner, nur die tatsächlich im Unterformular angezeigten Datensätze über den Knopf löschen zu lassen, unabhängig davon, welche Parameter zwischenzeitlich in dem Suchformular eingestellt wurden.

Hat diesbezüglich jemand noch einen Vorschlag?
Danke nochmals für eure Hilfe!
Mit freundlichem Gruß

Samurai2_de
"Vegetarier" ist das indianische Wort für "zu doof zum jagen"!

Ein Tag ohne Lachen ist ein verschenkter Tag!

MaggieMay

Dann musst du das Löschen in einer Schleife über den RecordsetClone des Unterformulars vornehmen.
Freundliche Grüße
MaggieMay

Samurai2_de

Super, mit dem Loop hat es funktioniert. Mein Code zum Löschen der Datensätze sieht (im Auszug) nun so aus:
With Forms!löschen_kunden!UFO_löschen_Kunden.Form.RecordsetClone
If Not .EOF Then
Do While Not .EOF
.Delete
.MoveNext
Loop
End If
End With


Vor diesen paar Zeilen Code befindet sich noch Code zum Auszählen der zur Löschung anstehenden Datensätze plus eine Sicherheitsabfrage, ob man die Datensätze auch wirklich löschen möchte, sowie die entsprechenden Bestätigungs-Messageboxen zum durchgeführten Löschvorgang bzw. zum Abbruch desselben. Außerdem wird eine Meldung ausgegeben, wenn über die Suche keine Datensätze gefunden wurden, aber trotzdem auf den "alles-löschen"-Knopf gedrückt wird.
Falls Interesse besteht kann ich auch gerne den kompletten Code meines "alles-löschen"-Knopfes hier posten...

Ich danke noch einmal für die kompetente Hilfe!

Gruß

Samurai2_de
"Vegetarier" ist das indianische Wort für "zu doof zum jagen"!

Ein Tag ohne Lachen ist ein verschenkter Tag!