none
FindFirst - Nicht genügend Systemresourcen Access2013 / 2016 (365)

    Frage

  • Ich benutze die FindFirst Methode in verschiedenen Bereichen

    jetzt stürzt auf einmal Access ab - oder hängt sich auf dann irgendwann mit Fehlermeldung

    Nicht genügend Systemressourcen

    was aber sonst immer problemlos ging

    wie gesagt in verschiedenen Bereichen

    aber immer wenn das FindFirst in einer schleife läuft

           

    Do Until TABELLE.EOF
    ANDERETABELLE.FindFirst "WHERE...."
    TABELLE.MoveNext

    Loop

    Jemand eine ahnung was das sein kann

    Donnerstag, 10. März 2016 09:11

Antworten

  • Hi,

    Frage vorweg: Warum machst Du das überhaupt so? Hol die Daten doch über ein passendes SQL Statement gesammelt rein.

    Warum dein Code zum Absturz führt, kann man nur vermuten: Ich tippe darauf, dass einfach zu viele Datensätze in "TABELLE" stehen und es daher zu diesem Problem kommt. Ein ähnliches Phänomen gibt es mit ADO, wenn Recordsets mittels Set ... = CreateObject( "ADODB.Recordset" ) oder ähnlichem innerhalb von Schleifen mit mehr als x (waren mal um die 100, habs aber seit Jahren nicht mehr probiert) Durchläufen erzeugt werden.

    Daher der Tipp: Zieh die Daten gleich richtig ab. Mangels Informationen hier nur ein generelles Beispiel, das musst Du dann auf deine Bedürfnisse anpassen.

    SELECT   t1.Spalte1,
             t2.Spalte2,
             MIN( t2.SpalteX ) AS MinT2SpalteX
    FROM     Tabelle1 t1
             LEFT JOIN Tabelle2 t2 ON t1.Spalte = t2.Spalte
    GROUP BY t1.Spalte1,
             t2.Spalte2

    Du kannst dir auch einfach eine solche Abfrage erstellen und die dann auslesen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort markiert MCDPone Sonntag, 13. März 2016 12:58
    Samstag, 12. März 2016 11:33

Alle Antworten

  • Hallo!

    Ich benutze die FindFirst Methode in verschiedenen Bereichen
    jetzt stürzt auf einmal Access ab - oder hängt sich auf dann irgendwann mit Fehlermeldung
    Nicht genügend Systemressourcen
    was aber sonst immer problemlos ging
    wie gesagt in verschiedenen Bereichen
    aber immer wenn das FindFirst in einer schleife läuft       

    Do Until TABELLE.EOF
    ANDERETABELLE.FindFirst "WHERE...."
    TABELLE.MoveNext
    Loop

    Jemand eine ahnung was das sein kann

    Kannst Du mal etwas mehr realen Code posten. Ich habe die Hoffnung, dass man dann eventuell konkrete Hinweise zur Optimierung geben kann.

    So fällt es - zumindest mir - schwer Dir zu helfen.

    CU


    Thomas@Team-Moeller.de
    Blog: Blog.Team-Moeller.de
    Homepage: www.Team-Moeller.de




    Samstag, 12. März 2016 11:08
  • Hi,

    Frage vorweg: Warum machst Du das überhaupt so? Hol die Daten doch über ein passendes SQL Statement gesammelt rein.

    Warum dein Code zum Absturz führt, kann man nur vermuten: Ich tippe darauf, dass einfach zu viele Datensätze in "TABELLE" stehen und es daher zu diesem Problem kommt. Ein ähnliches Phänomen gibt es mit ADO, wenn Recordsets mittels Set ... = CreateObject( "ADODB.Recordset" ) oder ähnlichem innerhalb von Schleifen mit mehr als x (waren mal um die 100, habs aber seit Jahren nicht mehr probiert) Durchläufen erzeugt werden.

    Daher der Tipp: Zieh die Daten gleich richtig ab. Mangels Informationen hier nur ein generelles Beispiel, das musst Du dann auf deine Bedürfnisse anpassen.

    SELECT   t1.Spalte1,
             t2.Spalte2,
             MIN( t2.SpalteX ) AS MinT2SpalteX
    FROM     Tabelle1 t1
             LEFT JOIN Tabelle2 t2 ON t1.Spalte = t2.Spalte
    GROUP BY t1.Spalte1,
             t2.Spalte2

    Du kannst dir auch einfach eine solche Abfrage erstellen und die dann auslesen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort markiert MCDPone Sonntag, 13. März 2016 12:58
    Samstag, 12. März 2016 11:33
  • Ich habe es jetzt über sql gelöst (ist älterer code - endstanden mit noch weniger wissen als heute) - für mich stellte sich die frage wieso tritt der fehler auf einmal an verschiedenen stellen auf (unabhängig von menge datensätzen)

    ob es evtl. an einem MS update liegt oder so

    aber danke für die antworten

    Sonntag, 13. März 2016 12:58