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