Hallo liebe Experten,
bin am Ende mit meinem Latein und etwas verzweifelt, weil mir ständig beim Verarbeiten meiner Routinen "Nicht genügend Systemressourcen" (3035) um die Ohren gehauen wird.
Ja, ich habe schon massig gesucht nach ähnlichen fällen, aber irgendwie finde ich nicht DIE Antwort/Lösung.
Ich kann auch nicht (wie oft vorgeschlagen), irgendwelche Systemparameter ändern, da ich keine Adminrechte auf dem Rechner habe.
Das System zeigt jedoch keinerlei Systemressourcenprobleme an, denn Arbeitsspeicher und alles ist noch genügend da...???
OK, da ich mein Code nicht vollumfänglich hier ablegen kann, hier mal die Beschreibung was ich mache und wo er auch aussteigt:
Ich arbeite viel mit Recordsets und er steigt mir bei ca. 20-30.000 Datensätzen aus, wenn ich sie durch eine Schlaufe jage, um gewisse Prüfungen und Editierungen zu machen.
Mein Code-Muster wäre folgender:
dim rs as DAO.Recordset
dim rs2 as DAO.Recordset
set rs = currentdb.openrecordset("SELECT * FROM tbl WHERE...")
Do Until rs.EOF
if... then
set rs2 = currentdb.openrecordset("SELECT * FROM tbl2 WHERE...")
do until rs2.EOF
'hier führe ich z. b. EDIT aus
rs2.MoveNext
loop
rs2.close
set rs2 = nothing
endif
rs.MoveNext
Loop
rs.close
set rs = nothing
Nun meine Frage(n): Darf ich so überhaupt verschachteln? Und wo bzw. wann sammelt denn Access nun Ressourcen/Speicher (wo und wie sammeln sich ggf. "Speicherleichen") und wo kann ich die wieder frei geben. bzw. hat jemand eine Idee oder Anregung wo ggf. mein Fehler in der Programmierung liegen könnte...? Und noch eine Frage: Sollte sich das Speicherproblem nicht beim beenden von Access wieder lösen? Ich habe so das Gefühl wie wenn es immer schlimmer wird... :-O
Das wäre echt spitze, wenn mir jemand Hilfe leisten könnte!
Danke.
|