Описание
Закрывает открытый объект доступа к данным (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