Unter Acces ein ausgewähltes Datenfeld per SQL löschen ?

devStorm

Erfahrenes Mitglied
Hallo !

Ich habe hier ein Listenfeld in welchem ein paar Einträge sind. Jedoch möchte ich einen betimmten Eintrag löschen. Dazu benutze ich diesen Befehl:

Code:
For i = 0 To List_Eintrag.ListCount - 1
    If List_Eintrag.Selected(i) = True Then
        DB.Execute ("DELETE 'Selected(i)' FROM Tab_ID_Main WHERE id_main")
       
                Refresh
            Else
     End If
    Next i
Jedoch funzt das irgedniwe nicht. Es werden alle Einträge auf einmal gelöscht. Was mache ich falsch ?

Andrej
 
hey...

so wie ich das sehe, hast du da was vergessen. du musst im query noch definieren, was für eine id_main gelösch werden soll.

Code:
DB.Execute ("DELETE 'Selected(i)' FROM Tab_ID_Main WHERE id_main=xxx")
greetings para
 
hmm irgend wie funzt des net, was muss ich als query dort eintragen wenn ich das I dort eintrage dann meckert er.

ist der befehl an sich selber richtig ?

andrej
 
oops... hab mir nicht den ganzen select angeschaut :eek:

der query müsste so aussehen:
Code:
DB.Execute ("DELETE FROM Tab_ID_Main WHERE id_main=" & idVariable)
du kannst beim DELETE-befehl ja nur ganze records löschen.. es darf also zwischen DELETE und FROM nichts stehen. die kriterien für die löschabfrage müssen im WHERE-Statement definiert werden. hoffe du verstehst was ich meine ;)

greetings para
 
ich heule gleich. es funktioniert irgendiwe nicht. bei deinem zweitem vorschlag wird lediglich der alleerster eintrag entfern.

Es kann doch nicht so schwer sein aus einem listenfeld einfach eine ausgewählte Zeile zu löschen und das per SQL.

Bitte helftmir, oder sagt doch einfach wie ich das anders machen kann.

Andrej
 
die listenfelder von access haben ein zugrundeliegendes recordset-objekt. du kannst also entweder über die delete-methode vom recordset den datensatz löschen, oder per sql.
die sql-syntax ist aber richtig. wenn irgendein falscher datensatz aus der tabelle gelöscht wird, dann liegt das vermutlich an einem falschen wert in der bedingung.
 
leider bin ich noch ein anfänger und wollte lediglich eine cd datenbank programmieren/erstellen. aber leider pack ich das mit dem listenfeld nicht.

kann mir jemand erklären wie ich am besten aus einem listenfeld ein eintrag rauslösche. dies wollte ich sql mache. aber wenn es noch irgendiwe anderes geht dann sagt es mir. und vor allem wie.

danke im voraus

andrej
 
ich schätze mal, dass du auf deinem formular das normale listenfeld von access hast. das problem bei den access-steuerelementen ist leider, dass sie ziemlich eigensinnig sind, weil sie an die datenbank gebunden sind.
um einen eintrag aus der tabelle zu löschen und dann auch sofort die aktualisierte liste in dem steuerelement zu haben, kannst du folgenden code nehmen:
Code:
Dim idVariable As Long
idVariable = 1 'oder welcher Wert auch immer
CurrentProject.Connection.Execute "DELETE FROM Tab_ID_Main WHERE idMain = " & idVariable & ";" 'Löschabfrage ausführen
Liste0.Requery 'Daten hinter dem Listenfeld neu abfragen
DoCmd.Requery 'Daten hinter dem Formular neu abfragen
 

Neue Beiträge

Zurück