Fehler -2147217864, Die zum Aktualisieren angegebene Zeile wurde nicht gefunden. Einige Werte wurden seit dem letzten Lesen ggf. geändert.

18/03/2010 - 11:41 von Jürgen Schmitt | Report spam
Guten Tag zusammen,
beim Update eines Recordsets tritt o.a. Fehler auf. Kann die Ursache
nicht finden.

z.B.

'Zuweisen SQL-String
sql = "SELECT * FROM Tabelle1;"

'Öffnen
Set RS = New ADODB.Recordset
With RS
.ActiveConnection = Conn
.CursorLocation = adUseClient
.LockType = adLockPessimistic
.source = sql
.Open
End With

For i = 1 To n 'Durchlaufen einer Schleife
With RS
.MoveFirst
sql = "Feld1='" & i & "'" 'Filter für alle Objekte mit Inhalt i
.Filter = sql 'Bringt jew. zw. 20-50 Datensàtze
Do While Not .EOF 'Filter durchlaufen
debug.Print i, .Fields("ID") 'Kontrolle
'Jetzt z.B.
.Fields("Feld6") = .Fields("Feld6") + 1
If .Fields("Feld8") < 1 Then .Fields("Feld8") = i
x = i - .Fields("Feld10") - 1
If x > .Fields("Feld9") Then .Fields("Feld9") = x
.Fields("Feld13") = i

On Err Resume Next
Err.Clear

.Update 'Hier Fehler beim 2. Update eines Satzes

if Err then
Debug.Print Err, Err.Description
stop
end if
.MoveNext
Loop
End With
Next

Der Schleifenwert i filtert zw. 20-40 Datensàtze aus dem Recordset,
wobei etliche Sàtze mehrfach upgedatet werden.
Das 2. Update eines Satzes bringt den Fehler.
Weiss nicht, was ich da jetzt falsch mache.
Wàre wirklich dankbar für einen Tipp.
Gruss
 

Lesen sie die antworten

#1 Dieter Strassner
18/03/2010 - 12:25 | Warnen spam
Hallo Jürgen,


beim Update eines Recordsets tritt o.a. Fehler auf. Kann die Ursache
nicht finden.

z.B.

'Zuweisen SQL-String
sql = "SELECT * FROM Tabelle1;"

'Öffnen
Set RS = New ADODB.Recordset
With RS
.ActiveConnection = Conn
.CursorLocation = adUseClient
.LockType = adLockPessimistic
.source = sql
.Open
End With

For i = 1 To n 'Durchlaufen einer Schleife
With RS
.MoveFirst
sql = "Feld1='" & i & "'" 'Filter für alle Objekte mit Inhalt i
.Filter = sql 'Bringt jew. zw. 20-50 Datensàtze
Do While Not .EOF 'Filter durchlaufen
debug.Print i, .Fields("ID") 'Kontrolle
'Jetzt z.B.
.Fields("Feld6") = .Fields("Feld6") + 1
If .Fields("Feld8") < 1 Then .Fields("Feld8") = i
x = i - .Fields("Feld10") - 1
If x > .Fields("Feld9") Then .Fields("Feld9") = x
.Fields("Feld13") = i

On Err Resume Next
Err.Clear

.Update 'Hier Fehler beim 2. Update eines Satzes

if Err then
Debug.Print Err, Err.Description
stop
end if
.MoveNext
Loop
End With
Next

Der Schleifenwert i filtert zw. 20-40 Datensàtze aus dem Recordset,
wobei etliche Sàtze mehrfach upgedatet werden.
Das 2. Update eines Satzes bringt den Fehler.
Weiss nicht, was ich da jetzt falsch mache.
Wàre wirklich dankbar für einen Tipp.
Gruss



betrifft der Update auch deinen Primarykey der Tabelle? (gibt es den einen
PK dazu?)
Wird parallel zu dieser Schleufe (oder kurz vorher) über einen anderen Weg
(z.B. per "UPDATE mytable SET... WHERE ..") auch der Datensatz direkt
geàndert?


Viele Grüße

Dieter


Rückfragen bitte nur in die Newsgroup!

EDV-Kommunikation Strassner e.K.
68623 Lampertheim
Internet: www.strassner.biz

Ähnliche fragen