Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Skaletti am Februar 23, 2014, 14:47:25

Titel: Mit Kombinationsfeld Datensatz aus Tabelle löschen
Beitrag von: Skaletti am Februar 23, 2014, 14:47:25
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!
Titel: Re: Mit Kombinationsfeld Datensatz aus Tabelle löschen
Beitrag von: DF6GL am Februar 23, 2014, 16:41:46
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...
Titel: Re: Mit Kombinationsfeld Datensatz aus Tabelle löschen
Beitrag von: bahasu am Februar 23, 2014, 16:54:30
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
Titel: Re: Mit Kombinationsfeld Datensatz aus Tabelle löschen
Beitrag von: DF6GL am Februar 23, 2014, 17:53:08
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...
Titel: Re: Mit Kombinationsfeld Datensatz aus Tabelle löschen
Beitrag von: Skaletti am Februar 23, 2014, 19:48:11
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!