Schönen Abend,
ich habe folgendes Problem. In einer Tabelle mit Datumsfeld als Datum und Zeit, Zylindernummer und Schlüsselnummer werden Betätigungen des Zylinders gespeichert. Ein Datensatz beim Einschalten, ein Datensatz beim Ausschalten, wobei keine Unterscheidung zwischen Ein- und Ausschalten gegeben ist. Manchmal wird nur der Schlüssel gesteckt und ein Dtensatz geschrieben. Diese einzelnen Datensätze sollen gelöscht werden. Mit der Abfrage
SELECT Format([Datum],"dd/mm/yyyy") AS Ausdr1, StaplerRohdaten.SchlüsselNr, StaplerRohdaten.ZylinderNr
FROM StaplerRohdaten
GROUP BY Format([Datum],"dd/mm/yyyy"), StaplerRohdaten.SchlüsselNr, StaplerRohdaten.ZylinderNr
HAVING (((Count(StaplerRohdaten.Datum))=1))
ORDER BY Format([Datum],"dd/mm/yyyy");
erhalte ich zwar diese einzelnen Datensätze, kann sie aber nicht löschen. Gibt es dazu eine Idee?
Hallo,
eine gruppiert Abfrage ist nicht aktualisierbar und somit lassen sich auch keine Datensätze löschen.
Die Format Funktion ist überall auch überflüssig. Das Datum benötigt hier keine besondere Formatierung.
Zitat von: risingstar am Oktober 18, 2023, 20:25:21Mit der Abfrage
Code [Auswählen] Erweitern
SELECT Format([Datum],"dd/mm/yyyy") AS Ausdr1, StaplerRohdaten.SchlüsselNr, StaplerRohdaten.ZylinderNr
FROM StaplerRohdaten
GROUP BY Format([Datum],"dd/mm/yyyy"), StaplerRohdaten.SchlüsselNr, StaplerRohdaten.ZylinderNr
HAVING (((Count(StaplerRohdaten.Datum))=1))
ORDER BY Format([Datum],"dd/mm/yyyy");
erhalte ich zwar diese einzelnen Datensätze, kann sie aber nicht löschen. Gibt es dazu eine Idee?
Sobald du GROUP BY in einer Abfrage verwendest, hast du eben keine einzelne Datensätze mehr, sondern eine gruppierte Ergebniszeile, die aus einer unbestimmten Anzahl von Datensätzen gebildet wurde.
Danke für das Feedback. Ich habe das jetzt so gelöst, dass ich diese einzelnen Datensätze in eine neue Datei speichere und sie dann in einer Löschabfrage als Kriterium benutze. Ist vielleicht nicht der eleganteste Weg, aber es funktioniert.