Hallo,
ich habe 400000 Datensätze die geändert werden müssen. Die SQL-Abfrage sieht etwa so aus:
DoCmd.SetWarnings False
Do Until rst.EOF ' Schleife über die Datensätze des Recordsets
material = rst.Fields("Material")
line = rst.Fields("HWPLDesc")
DoCmd.RunSQL "UPDATE tblSAPBW SET [HWPLDesc]='" & line & "' WHERE Material='" & material & "';"
rst.MoveNext 'nächsten Datensatz ansteuern
Loop
Insgesamt sind das denke ich mehr als 400 Updates die gemacht werden. Ich habe schon raus bekommen wie das System nicht immer bei jedem Update frägt ob er diese Datensätze updaten soll (DoCmd.SetWarnings False).
Leider ist das alles eben immer noch sehr ineffizient -> das System(MS Access) ist dann insgesamt etwa 4h auf "not responding".
Gibt es eine Möglichkeit alle Updates erstmal zu sammeln und dann alles auf einmal zu machen? Denkt ihr das ist dann effizienter....? Oder gibt es eine andere Lösung?
Code-Beispiele wären wirklich toll...
Vielen Dank schon mal!
ich habe 400000 Datensätze die geändert werden müssen. Die SQL-Abfrage sieht etwa so aus:
DoCmd.SetWarnings False
Do Until rst.EOF ' Schleife über die Datensätze des Recordsets
material = rst.Fields("Material")
line = rst.Fields("HWPLDesc")
DoCmd.RunSQL "UPDATE tblSAPBW SET [HWPLDesc]='" & line & "' WHERE Material='" & material & "';"
rst.MoveNext 'nächsten Datensatz ansteuern
Loop
Insgesamt sind das denke ich mehr als 400 Updates die gemacht werden. Ich habe schon raus bekommen wie das System nicht immer bei jedem Update frägt ob er diese Datensätze updaten soll (DoCmd.SetWarnings False).
Leider ist das alles eben immer noch sehr ineffizient -> das System(MS Access) ist dann insgesamt etwa 4h auf "not responding".
Gibt es eine Möglichkeit alle Updates erstmal zu sammeln und dann alles auf einmal zu machen? Denkt ihr das ist dann effizienter....? Oder gibt es eine andere Lösung?
Code-Beispiele wären wirklich toll...
Vielen Dank schon mal!
Comment