Hallo,
Ich versuche mit einem Kombinationsfeld einen bestimmten, in der cbo ausgewählten Datensatz,
aus einer Tabelle zu löschen.
Fehlermeldung:
Laufzeitfehler 3061
1 Parameter wurde erwartet, aber es wurden zu wenig Parameter übergeben.
db.Execute strSQL
gelb hinterlegt.
Der gesamte Code:
Private Sub cmdMNrLöschen_Click()
Dim db As DAO.Database
Dim lngStartnummern_MannschaftenID As Long
Dim strSQL As String
Set db = CurrentDb
lngStartnummern_MannschaftenID = Me!cboMannschaftsstartnummern
strSQL = "DELETE FROM Startnummern_Mannschaften WHERE Startnummern_MannschaftenID = " & lngStartnummern_MannschaftenID
db.Execute strSQL
Set db = Nothing
End Sub
Leider kann ich als Anfänger mit diesem Laufzeitfehler nichts anfangen.
Wer weiß die Ursache, und eventuell eine Lösung?
Für jede Hilfe meinen Dank im Voraus.
Gruß Skaletti!
Hallo,
vermutlich ist das Kombi "leer". Um den Fehler abzufangen, aber nicht die "Logik", kann Folgendes geschrieben werden:
Private Sub cmdMNrLöschen_Click()
Dim db As DAO.Database
Dim lngStartnummern_MannschaftenID As Long
Dim strSQL As String
Set db = CurrentDb
lngStartnummern_MannschaftenID = [color=red]nz(Me!cboMannschaftsstartnummern,0)[/color]
strSQL = "DELETE FROM Startnummern_Mannschaften WHERE Startnummern_MannschaftenID = " & lngStartnummern_MannschaftenID
db.Execute strSQL
Set db = Nothing
End Sub
unter der Voraussetzung, dass das Feld "Startnummern_MannschaftenID" auch tatsächlich in der Tabelle so heißt und vorhanden ist...
Hi,
und wenn das nz dann geholfen hat, lässt sich der Code etwas kürzen:
Private Sub cmdMNrLöschen_Click()
currentdb.Execute "DELETE FROM Startnummern_Mannschaften WHERE Startnummern_MannschaftenID = " & nz(Me!cboMannschaftsstartnummern,0)
End Sub
Harald
Hallo,
eigentlich kann meine Vermutung bzgl. leerem Kombifeld nicht ganz stimmen, es käme in diesem Fall zu einem "Null"-Fehler beim Zuweisen an die Long-Variable.
Es dürfte wahrscheinlicher sein, dass der Tabellen(-Feld)-Name nicht korrekt ist...
Hallo Harald, Franz,
erst mal Danke für die schnelle Hilfe.
Franz, du hattest Recht,Feldname war falsch.
Harald, Danke für den kürzeren Code.
Funzt Prima.
Gruß Skaletti!