Supportnet / Forum / Datenbanken
Löschen eines Datensatzes durch ein Formular
Frage
Ich habe folgendes Problem bei einer ACCESS-Datenbank:
Ich möchte mittels eines Formulars einen Datensatz löschen (der User soll per Kombinationsfelder den aus 2 Variablen bestehenden Primärschlüssel auswählen).
Meine Versuche dies mittels einer Löschabfrage (als Ereignis bei Klick auf einen Button) zu realisieren schlugen fehl. (Ich konnte entweder gar nichts oder nur den ersten Datensatz löschen). Wie kann ich dies am einfachsten realisieren ?
Wie kann ich ausserdem überprüfen, ob dieser Datensatz überhaupt vorhanden ist ?
Danke....
Antwort 1 von firefox
Du hast einen Primärschlüssel zum löschen, aber es können mehrere Datensätze sein? Widerspricht sich irgendwie oder?!
Prüfen ob ein Datensatz existiert kannst du entweder mit DCount() oder eine kleine Abfrage die die Datensätze für diesen Schlüssel zählt (Select Count(*) From ...)
Prüfen ob ein Datensatz existiert kannst du entweder mit DCount() oder eine kleine Abfrage die die Datensätze für diesen Schlüssel zählt (Select Count(*) From ...)
Antwort 2 von WhatUSee
Vielleicht habe ich es falsch erklärt. Der Primärschlüssel besteht aus 2 Variablen. Bei meinen Versuchen wurde nur der erste Datensatz der Tabelle gelöscht, der einen anderen (!) Primärschlüssel hatte. Ich weiss nicht, wie ich den korrekten Datensatz lösche. Und ich habe auch keine Ahnung wie ich (in einem Makro ?) eine Abfrage gestalte, ob der vom User eingegebene Datensatz überhaupt existiert....
Antwort 3 von firefox
Sinnvoller wäre es dem Benuzter nur eine Liste von vorhandenen Daten zu geben aus denen er löschen kann - dann entfällt das prüfen nachher.
Zum löschen: sollte mit einer Löschabfrage gehen, die die Einschränkungen per Verweis auf die Formularfelder nutzt.
Also im Abfragedesign als Bedingung sowas wie
"Forms!Formularname!Formularfed" eingeben.
Zum löschen: sollte mit einer Löschabfrage gehen, die die Einschränkungen per Verweis auf die Formularfelder nutzt.
Also im Abfragedesign als Bedingung sowas wie
"Forms!Formularname!Formularfed" eingeben.

