15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как закрыть все открытые рекордсеты

Если вы используете базу данных в ваше приложении (базы DAO, RDO, или ADO), вы должны быть уверены, что закроете все открытые рекордсеты, базы перед тем, как выйдете из программы. Иначе память может не освободиться.

Вот небольшой код, который вы можете добавить в событие Form_Unload, который закроет все базы, рекордсеты и освободит занимаемую ими память. Этот код будет работать, даже если у вас 1, 100 или вообще нет соединений, когда вы попытаетесь выйти из программы.

Private Sub Form_Unload(Cancel As Integer)

On Error Resume Next

Dim ws As Workspace
Dim db As Database
Dim rs As Recordset
'
For Each ws In Workspaces
For Each db In ws.Databases
For Each rs In db.Recordsets
rs.Close
Set rs = Nothing
Next
db.Close
Set db = Nothing
Next
ws.Close
Set ws = Nothing
Next 

Источник: www.vbstreets.ru