Описание
Закрывает открытый объект доступа к данным (DAO).
объект.Close
Параметры
объект
Прототип объект представляет объектную переменную, задающую открытый объект Connection, Database, Recordset или Workspace.
Замечания
Закрытие объекта удаляет открытый объект из семейства, в которое он добавлен. Любая попытка закрыть стандартную рабочую область игнорируется.
При вызове метода Close для уже закрытого объекта Connection, Database, Recordset или Workspace возникает ошибка выполнения.
При выходе из процедуры, в которой описаны объекты Connection, Database или Recordset, эти объекты закрываются, все незавершенные транзакции свертываются, а результаты всех незаконченных операций редактирования теряются.
Попытка закрыть объект Connection или Database при наличии открытых объектов Recordset приводит к закрытию объектов Recordset и отмене всех незавершенных операций обновления или изменения. Аналогично, попытка закрыть объект Workspace при наличии любых открытых объектов Connection или Database приводит к закрытию объектов Connection и Database, в результате чего будут закрыты принадлежащие им объекты Recordset.
Применение метода Close к одному из объектов Recordset (оригиналу или копии) не влияет на второй объект.
Для удаления объектов из обновляемых семейств, отличных от семейств Connections, Databases, Recordsets и Workspaces, следует применять к этим семействам метод Delete. Добавление новых компонентов в семейства Containers, Documents и Errors не допускается.
Альтернативой методу Close может служить задание для объектной переменной значения Nothing (Set dbsTemp = Nothing).
Пример
Следующая программа использует метод Close для закрытия объектов Recordset и Database. Демонстрируется также потеря несохраненных изменений при закрытии объекта Recordset.
Sub CloseX()
Dim dbsNorthwind As Database
Dim rstEmployees As Recordset
Set dbsNorthwind = OpenDatabase("Борей.mdb")
Set rstEmployees = dbsNorthwind.OpenRecordset("Сотрудники")
' Вносит изменения в запись, но закрывает набор записей
' до сохранения изменений.
With rstEmployees
Debug.Print "Исходные данные"
Debug.Print " Имя - Телефон"
Debug.Print " " & !Имя & " " & !Фамилия & " - " & !Телефон
.Edit
!Телефон = "9999"
.Close
End With
' Повторно открывает объект Recordset, чтобы показать,
' что данные не были изменены.
Set rstEmployees = dbsNorthwind.OpenRecordset("Сотрудники")
With rstEmployees
Debug.Print "После вызова метода Close"
Debug.Print " Имя - Телефон"
Debug.Print " " & !Имя & " " & !Фамилия & " - " & !Телефон
.Close
End With
dbsNorthwind.Close
End Sub