Herbers Excel-Forum - das Archiv

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