Uwe Nohl: Antwort korrigiert

Beitrag lesen

Hallo,
ich nochmal
Es sind leider Fehler in der Funktion drin. Hier die korrekte Version:
Function myfunction()
'DAO vorausgesetzt

Dim dbs As Database, rst As Recordset
Dim strSQL As String, i As Integer, j As Integer, st As String
Dim arr()
On Error GoTo ErrHandl

Set dbs = CurrentDb()

strSQL = "SELECT Ident, Preis FROM test_include;"

Set rst = dbs.OpenRecordset(strSQL, dbOpenSnapshot)
'nur auslesen, keine Aktualisierung.

arr = rst.GetRows(rst.RecordCount)
'ins array reinziehen
rst.Close
Set rst = nothing 'object abmelden

For i = 0 Ubound(arr,2)
arr(0,i) = "P_" & arr(0,i)
Next
'anpassen

'nächster SQL-Schritt, diesmal aktualisierbar,
strSQL = "SELECT IdentNr, Preis FROM prod;"

Set rst = dbs.OpenRecordset(strSQL, dbOpenDynaset)
'object neu anmelden, dynaset = aktualisierbar!
rst.MoveLast
rst.MoveFirst

For i = 0 To Ubound(arr,2)
For j = 0 To rst.RecordCount - 1
  If rst![IdentNr] = arr(0,i) Then
   rst.Edit
   rst![Preis] = arr(1,i)
   rst.Update
   Exit For
  End If
  rst.MoveNext
Next
rst.MoveFirst
Next

rst.Close
Set rst = nothing
db.Close
Set dbs = nothing

Exit Function

ErrHandl:
MsgBox Err.Description
rst.Close
Set rst = nothing
dbs.Close
Set dbs = nothing

End Function
Gruss
Uwe Nohl