PDA

Vollständige Version anzeigen : Datensatz mit SQL löschen


FCB
05.07.2006, 13:15
Hallo zusammen,

ich habe folgenden Code:

strSQL = "DELETE * "
strSQL = strSQL & "FROM tbl_trainer_blocked_intervall "
strSQL = strSQL & "WHERE perso = " & x_perso & " And datum_blocked = " & frdienst & " And intervall_blocked = " & x_time
CurrentDb.Execute strSQL

Damit möchte ich gerne 3 Parameter in einer Tabelle abfragen und wenn die 3 Parameter überein stimmen, dann soll der DS gelöscht werden.

Leider klappt das aber nicht, er löscht mir die ganzen Datensätze.
Kann mir jemand sagen was da schief gelaufen ist?

Danke

Stefan

lalo
05.07.2006, 13:18
Hallo,

zeig mal mit debug.print strSQL das SQL-Statement im direktfenster an. vielleicht siehts Du selbst wo der fehler leigt oder stelle es mal ins Forum. Am bestena auch mald die Tabellenstruktur.
Gruß Lalo

FCB
05.07.2006, 14:28
Das steht im strsql

DELETE * FROM tbl_trainer_blocked_intervall WHERE perso = 2589 And datum_blocked = #2006-06-21# And intervall_blocked = 19:30:00

lalo
05.07.2006, 17:54
Löscht Deine Abfrage wirklich alle Zeilen aus der Tabelle ? oder verstehe ich deinen Satz "er löscht mir die ganzen Datensätze." falsch ?

Welche Datentypen haben die angesprochenen Spalten ?

Evtl musst Du auch die Zeit formatieren, hier eine Funktion dazu:

Public Function ZeitSQL(tim As String) As String

' -----------------------------------------------------------
' Diese Funktion wandelt eine Zeit in eine SQL-Zeit um.
' -----------------------------------------------------------
On Error GoTo fehler
ZeitSQL = "#" & Format(Hour(tim), "00") & _
":" & Format(Minute(tim), "00") & ":" & _
Format(Second(tim), "00")
If Hour(tim) <= 11 And Minute(tim) <= 59 And Second(tim) <= 59 Then
ZeitSQL = ZeitSQL & " AM#"
Else
ZeitSQL = ZeitSQL & " PM#"
End If
ende:
Exit Function
fehler:
ZeitSQL = "Error"
Resume ende
End Function

Und dann teste den Code in einer Abfrage.
Gruß Lalo

JR²
06.07.2006, 09:23
Setz einmal die 3 Bedingungen, die Du mit AND verknüpfst, in Klammern.

Gruß,
JR²