Recordset freigeben...

Bild

Betrifft: Recordset freigeben... von: Dennis
Geschrieben am: 05.04.2005 16:04:23

Hi!

Hatte das Thema eben schonmal gepostet, anscheinend ein wenig zu lang und kompliziert. Daher hier einfacher:

Warum haut Excel mir bei der Ausführung dieser DB-Abfrage den Speicher so voll?! Bei 20 Funktionsaufrufen in diversen Zellen verlieren ich schon 15MB Arbeitsspeicher! Bei weiteren Abfragen wird Memory nicht mehr freigeräumt sondern nur noch weiter belastet.

Warum gibt Excel nicht automatisch das Recordset-objekt wieder frei??? Excel schmiert mir immer ab "Nicht genügend Arbeitsspeicher"

Dennis

Bild


Betrifft: AW: Recordset freigeben... von: Hajo_Zi
Geschrieben am: 05.04.2005 16:08:53

Hallo Dennis,

hast Du die Variablen mit Set definiert und nicht wieder freigegeben?


Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.




Bild


Betrifft: AW: Recordset freigeben... von: Dennis
Geschrieben am: 05.04.2005 16:19:49

Nein, das ist es ja! Habe schon alles mögliche probiert, hier mein derzeitiger Code:

Private Function readData(sql As String) As Variant
    Dim Conn As New Connection
    
    Conn.Open "Provider=microsoft.jet.oledb.4.0;" & _
        "Data Source=" + ThisWorkbook.FullName + ";" & _
            "Extended Properties=""Excel 8.0"";"
    Dim rs As New Recordset
    rs.Open sql, Conn
    
    If IsNull(rs(0)) Then
        readData = "0"
    Else
        readData = rs(0)
    End If
    
    rs.Close: Conn.Close
End Function



 Bild

Beiträge aus den Excel-Beispielen zum Thema "Sortierung bei freigegebener Arbeitsmappe"