PDA

Vollständige Version anzeigen : Neuer Datensatz hinzufügen


microfish
24.09.2001, 10:34
Hallo Leute,
ich möchte ein gebundenes Formular per button(click) und dann durch Eingabe in vorhandenen Textfelder einen neuen Datensatz hnzufügen. So jetzt mein Problem:
er bring mir immer die Fehlermeldung Laufzeitfehler 2105 Sie können nicht zu den angebenen Datensatz springen(Möglicherweise befinden Sie sich im letzten Datensatz)
Hier mein Code:
Private Sub cmdNeu_Click()
Dim Liste As Variant
Dim i As Integer
'um einen neuen Datensatz eingeben zu können, den Standard wiederherstellen, Störungsnummer um 1 erhöhen
Set db = CurrentDb()
Set rst = db.OpenRecordset("tblPasswort")

rst.MoveLast
strSNR = rst!PasswortAenderungNR + 1
Me.lblStoerungserfassung.Caption = "Erfassung Störungs-NR.: " & strSNR
DoCmd.GoToRecord , , acNewRec
Me.Recalc
rst.Update

Call Unsichtbar
Call StandardWert
Call Entsperrt
Call SetzeAufNull
End Sub
Wäre Cool wenn mir jemand behilflich sein könnte(Danke Vorab)

Hütti
24.09.2001, 11:57
ich nehme an, der fehler liegt in dem .movelast . du befindest dich bereits auf dem letzten datensatz. du solltest vorher mit IF RST.EOF=true den befehl abfangen.
WITH RST
.addnew
.feld=inhalt
.feld2=inhalt2
...
.update
end with

dann dein recalc/requery auf das formular

microfish
24.09.2001, 13:10
Danke dein tip hat mir weiter geholfen,
aber legt mir immer noch keinen neuen Datensatz an. Liegt es vieleicht daran, das es sich um ein gebundenes Formular handelt?

Vielen Dank für dein Bemühen.

Hütti
24.09.2001, 13:45
ne, eigentlich nicht... allerdings, wenn die felder, in die du schreibst gebunden sind, und du dann einen ds anfügst, wird dsa unlogisch; weil, er hat dann ja schon einen neuen ds erzeugt. die felder, aus denen du werte übernimmst, sollten ungebunden sein. wenn du aber trotzdem erst einen neuen ds erzeugst (über das formular) darfst du kein .addnew machen, sondern musst den letzten ds ausfüllen....

völlig verwirrt???

nimm mal statt recalc me.requery. und zwar als letztes du hattest das .update nach dem recalc.

das .update aktualisiert die tabelle. erst dann darfst du das formular aktualsisieren. wenn er den datensatz dann immer noch nicht anfügt, musst du evtl. vorher prüfen, ob deine tabelle überhaupt updatebar ist (.updateable=true).


für choas sorgend....