Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Mit Kombinationsfeld Datensatz aus Tabelle löschen

Begonnen von Skaletti, Februar 23, 2014, 14:47:25

⏪ vorheriges - nächstes ⏩

Skaletti

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!

DF6GL

#1
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...
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

bahasu

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
Servus

DF6GL

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...
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Skaletti

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!