Office: (Office 2013) Fehlermeldung "Nicht genügend Speicher"

Helfe beim Thema Fehlermeldung "Nicht genügend Speicher" in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Ich habe an meinem PC mit 4GB Ram-Speicher ein Programm geschrieben, das zu beginn eines Makros alle Daten für die Berechnung aus Access abruft... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Faultier_1982, 25. April 2015.

  1. Fehlermeldung "Nicht genügend Speicher"


    Hallo

    Ich habe an meinem PC mit 4GB Ram-Speicher ein Programm geschrieben, das zu beginn eines Makros alle Daten für die Berechnung aus Access abruft und in ein Array schreibt. Das funktioniert auch alle wunderbar, genau so wie ich mir das gewünscht habe.

    Dann wollte ich dieses Programm an einem andere, leistungsstärkeren PC testen, der 8 GB Ram-Speicher hat. Seltsamerweise funktioniert der Code hier nicht und bringt die Fehlermeldung

    "Nicht genügend Speicher."

    obwohl der PC viel mehr Ram-Speicher zur verfügung hat.

    Gleichzeitig wird die Zeile mit der Array-Deklaration gelb markiert.
    ReDim .....

    Wie kann das sein und was wäre eine Lösungsmöglichkeit?

    Gruß Faultier

    :)
     
    Faultier_1982, 25. April 2015
    #1
  2. Hallo,
    ...das wird wohl am Code liegen....*cool.gif*

    Gruß, Muller
     
    Muller, 27. April 2015
    #2
  3. Hallo Muller

    Ja, das hätte ich auch vermutet, aber der Code ist auf beiden PC´s der Gleiche, aber auf dem Leistungsstärkeren PC mit mehr Ram funktioniert es nicht.

    Gruß Faultier
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
    Faultier_1982, 27. April 2015
    #3
  4. Fehlermeldung "Nicht genügend Speicher"

    Hallo Faultier,
    ähem, sollte heißen Du wirst ihn schon mal hochladen müssen....*rolleyes.gif*

    Gruß, Muller
     
    Muller, 27. April 2015
    #4
  5. ...tja, das ist ja der leichtsinnige Irrglaube, dass man zu Zeiten riesigen speichervolumens das speichervolumen deshalb sinnlos verschwenden darf....*wink.gif*

    1. Es ist vollkommen egal, ob der andere PC doppelt soviel Ram hat wie Deiner, wenn er mehr Programme im Autostart (oder aktuell geöffnet) hat, oder ein anderer Programmierer achtlos mit dem Speicherplatz rumschweinst ist auch das Volumen irgendwann verbraucht.
    2. Du solltest Deinen Code mal überprüfen. Ist jede als Public definierte Variable denn auch notwendigerweise public? Oder genügt nicht auch ein Private auf Prozedurebene?
    3. Sind die Variablentypen u.U. überdimensioniert?
    4. Wurden alle gesetteten Objekte auch wieder entsettet?

    @Muller
    ....willst Du Dir das wirklich antun? *Smilie
     
  6. Hallo Muller,

    Ach so, jetzt habe ich es auch verstanden

    Code:
    Ich habe mich auf den Teil beschrenkt, der die Daten in der Datenbank abruft, bis zur Stelle der Fehlermeldung. Ich hoffe, dass das ausreicht.

    Was mich an der Fehlerursache Code etwas zweifeln lässt ist, dass beide PC´s Win7 mit Office 2013 verwenden. Haben somit theoretisch die gleichen Software-Voraussetzungen.


    Gruß Faultier
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
    Faultier_1982, 27. April 2015
    #6
  7. Hallo R J,

    Ich habe im Tastkmanager die Auslastung des Ram-Speichers kontrolliert, Von den ca. 7 GB, die bei 8 GB tatsächlich zur Verfügung stehen, sind nur 1,5 GB belegt. Somit wären noch 6,5 GB frei. Hätte also spielend funktionieren müssen, da mein PC diesen Code mit realen 3 GB zum laufen bekommt. Vielleicht lagert mein PC etwas auf seine SSD-Festplatte aus, das könnte der Leistungsstärkere PC aber auch machen, nur ist es da vermutlich keine SSD-Festplatte.

    Den Code habe ich geprüft, die Public müssen sein und auf die Variablentyp habe ich immer geachtet.

    Gruß Faultier
     
    Faultier_1982, 27. April 2015
    #7
  8. Fehlermeldung "Nicht genügend Speicher"

    ...mal kurzer Blick 'drüber geworfen, und schon haben wir einen übeltäter...


    Code:
    ...könntest Du, da du nacheinander und unabhängig darauf zugreifst, als eine Variable nutzen: rs_gruppiert (z. Bsp.)
    und bevor Du sie neu initalisierst, vorher das 'entsetten' nicht vergessen
    Code:
    dann kannst Du statt:
    Code:
    sagen:
    Code:
    und wieder entsetten.... Das solltest Du generell mit allen gesetzten Objekten immer tun!
    Ansonsten ist hier nicht erkennbar, warum unter den angegebenen Umständen ein Überlauf zustande kommt.... selbst ohne entsetten....*Smilie

    Wobei mir schleierhaft ist wozu der Code gut sein soll. Um Unternehmen und Tage zu zählen? Dazu kann man auch Aggregatfunktionen nutzen...
     
  9. Hallo R J,


    Oh, stimmt das entsetten habe ich vergessen.

    Ja, das stimmt, Aggregatfunktionen kann man auch verwenden, ich dachte, mit einer Schleife geht das schneller. Ist das nicht richtig???


    Ich habe ein bisschen gegoogelt und von der Möglichkeit gelesen, die Größe des virtuellen Arbeitsspeichers zu ändern, in das das System Daten aus dem Arbeitsspecher auslagert, wenn der Ram-Speicher zu klein wird.
    Ich habe das dann nach Anleitung versucht, und den virtuellen Speicher deutlich vergrößert. Dann habe ich im Taskplaner im Ressourcenmonitor geschaut, man kann im Virtuellen Speicher nicht wirklich erkennen, das da Daten ausgelagert werden. An meinem PC sieht man deutlich, dass der virtuelle Arbeitsspeicher benutzt wird.

    Gruß Faultier
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
    Faultier_1982, 27. April 2015
    #9
  10. So ist es. Statt grauenhafte Schleifen zu drehen, verwendet man dann eine richtige Abfrage a la ...
    Code:
    Ein Index auf das zu gruppierende Feld wäre dann auch recht hilfreich, siehe Grundlagen - SQL ist leicht (8) - Index

    NEIN. Setzt Du einen Berg mit Sand schneller mit einem Bagger um oder wenn Du die Körnchen einzeln auf die andere Seite wirfst?

    Das reicht natürlich nicht, weil hier nur der Verweis auf das Recordsetobjekt gelöscht wird, das Objekt aber weiter im Speicher bestehen bleibt und wesentlicher: Es bleibt eine offene Verbindiung zur Tabelle.
    Code:
    Als Zusatz:
    Code:
    Als Standard wird ein Recordset im Lesen/Schreiben-Modus geöffnet (Dynaset). Das Verwalten von Schreibenaktionen verbraucht einige Ressourcen (man beachte einen möglichen Mehrbenutzerbetrieb). Für einen einfachen Durchlauf braucht man keine Verwaltung fürs Schreiben (Dynaset), nicht mal fürs Hin- und Zurücklesen im Recordset (Snapshot), sondern ein einfaches dbOpenForwardOnly .
    Tatsächlich für das Programm oder nur generell?

    Außerdem weiß man doch, dass ein 32Bit-Windows nur etwa 4 GB verwalten kann, auch wenn da 12 GB RAM vorhanden sind.

    Insgesamt glaube ich aber nicht, dass die zwei Recordsets zu einem Speicherüberlauf führen. Bei jeweils einem Feld müsstest Du schätzungsweise bei jenseits von 100 Mio Datensätzen liegen. Ich denke eher an Arrays. Die belegen Speicher schon mit ihrer Deklarierung.
     
  11. Hallo ebs17,

    Ok, werde ich versuchen anzupassen.


    Das hört sich so an, als wäre das nicht nur ein Speichervorteil, sondern auch ein Performancevorteil


    Der PC hat 8 GB komplett


    So, dann bin ich jetzt auch ein man. *Smilie Von Windows wusste ich das zwar schon, aber wenn ich davon ausgehe, dass das beim office genau so ist, habe ich meine Erklärung. Ich verwende das Office mit 64-Bit und der Leistungsstärkere PC hat nur die 32-Bit Version. Somit ist mit klar, warum der Code an meinem PC mit 64-Bit Office funktioniert und nicht an dem leistungsstärkeren PC mit 32-Bit Office


    Genau, es liegt an dem Array. Ich kann das Array leider nicht kleiner deklarieren, sonst kommt der Fehler Index außerhalb des gültigen Bereichs.


    Gruß Faultier
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
    Faultier_1982, 28. April 2015
    #11
Thema:

Fehlermeldung "Nicht genügend Speicher"

Die Seite wird geladen...
  1. Fehlermeldung "Nicht genügend Speicher" - Similar Threads - Fehlermeldung genügend Speicher

  2. Bedingte Formatierung funktioniert nicht

    in Microsoft Excel Hilfe
    Bedingte Formatierung funktioniert nicht: Hallo, ich habe eine Excel Datei erstellt und es funktioniert alles, bis auf eine bedingte Formatierung. Ich verstehe einfach nicht wieso. Habe in der Liste schon andere Formatierungen, die sehr...
  3. Outlook Fehlermeldung 0x800CCC78, Nachricht kann nicht gesendet werden ...

    in Microsoft Outlook Hilfe
    Outlook Fehlermeldung 0x800CCC78, Nachricht kann nicht gesendet werden ...: Hallo, habe seit der Installation von MS Office 2021 Pro ein Problem mit Outlook, dass auch nach 3-maliger Neuinstallation und mit dem MFCMAPI-Tool die Fehlermeldung auch nicht verschwindet. Bin...
  4. Fehlermeldung XML Erweiterungspacket

    in Microsoft Word Hilfe
    Fehlermeldung XML Erweiterungspacket: Hallo, kennt wer diese Fehlermeldung bei Word (Windows 10 pro/Word 2016)? Es tritt auf, wenn ich auf die Registerkarte Ansicht gehe und geht nicht mehr weg. Word stellt dann im Hintergrund eine...
  5. Excel Powerquery: Nach Schließen & Laden Fehlermeldung [DataFormat.Error]

    in Microsoft Excel Hilfe
    Excel Powerquery: Nach Schließen & Laden Fehlermeldung [DataFormat.Error]: Hallo zusammen! Ich bin gerade dabei von einem Teams-Sharepoint-Ordner Daten mit Power-Query abzurufen. Ich lade die Daten über "Daten Abrufen -> Datei -> Sharepoint-Ordner" und gebe dann den...
  6. Hyperlink mit Hilfe Sverweis

    in Microsoft Excel Hilfe
    Hyperlink mit Hilfe Sverweis: Hallo, ich weiß ähnliche Themen gab es leider schon, aber ich bin bisher dadurch absolut nicht weitergekommen. Ich bin hier echt am verzweifeln. Ich habe eine Liste mit verschiedenen Dateien...
  7. Fehlermeldung Pivot-Tabelle

    in Microsoft Excel Hilfe
    Fehlermeldung Pivot-Tabelle: Hallo Zusammen, Wenn ich: 1) eine neue Pivot-Tabelle erstellen oder 2) eine bestehende Pivot-Tabelle bearbeiten möchte erscheint folgende Fehlermeldung: "Ein Problem mit dem Datenmodell hindert...
  8. Fehlermeldung "nicht genügend Speicher"

    in Microsoft Excel Hilfe
    Fehlermeldung "nicht genügend Speicher": Hallo, Ich benötige ein Array in dieser Größe.... Code: Dim Datenbank(1 To 4500, 1 To 40000) leider meldet Excel immer "nicht genügend Speicher" Mein Arbeitsspeicher ist laut "Windows...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden