Описание
Возвращает значение, определяющее возможность изменения объекта доступа к данным (DAO).
Значение
Возвращаемое значение является выражением типа Boolean. Значение True указывает, что допускается изменение или обновление объекта. (Объекты Recordset типа статического набора записей и статического набора записей с последовательным доступом всегда возвращают значение False).
Замечания
В зависимости от вида объекта, если свойство Updatable имеет значение True, верным является следующее утверждение:
Свойство Updatable всегда имеет значение True для только что созданного объекта TableDef и значение False для присоединенного объекта TableDef. Новый объект TableDef можно добавить в базу данных только в том случае, если текущий пользователь имеет разрешение на запись для базы данных.
Многие типы объектов могут содержать поля, значения которых нельзя обновить. Например, можно создать объект Recordset типа динамического набора записей, в котором изменения допускаются только для некоторых из полей. Неизменяемые поля могут содержать постоянные данные или данные с автоприращением. Кроме того, динамический набор записей может быть создан на основе запроса, объединяющего обновляемые и неизменяемые таблицы.
Если объект содержит поля, доступные только для чтения, свойство Updatable имеет значение False. Если одно или несколько полей являются обновляемыми, это свойство имеет значение True. Пользователь имеет возможность изменять значения только обновляемых полей. При попытке присвоить новое значение полю, доступному только для чтения, возникает перехватываемая ошибка.
Свойство Updatable объекта QueryDef получает значение True, если допускается обновление определения запроса, даже в том случае, когда результирующий объект Recordset является необновляемым.
Поскольку обновляемый объект может содержать отдельные поля, доступные только для чтения, перед внесением изменений в записи объекта Recordset следует проверить значение свойства DataUpdatable каждого из полей семейства Fields объекта Recordset.
Пример
Следующая программа демонстрирует применение свойства Updatable к базе данных, четырем типам объектов Recordset, объекту TableDef и объекту QueryDef.
Sub UpdatableX() Dim dbsNorthwind As Database Dim rstEmployees As Recordset Set dbsNorthwind = OpenDatabase("Борей.mdb") With dbsNorthwind Debug.Print .Name Debug.Print " Updatable = " & .Updatable ' По умолчанию задается константа dbOpenTable. Set rstEmployees = .OpenRecordset("Сотрудники") Debug.Print "Табличный объект Recordset для таблицы 'Сотрудники'" Debug.Print " Updatable = " & rstEmployees.Updatable rstEmployees.Close Set rstEmployees = .OpenRecordset("Сотрудники", dbOpenDynaset) Debug.Print "Динамический набор записей для таблицы 'Сотрудники'" Debug.Print " Updatable = " & rstEmployees.Updatable rstEmployees.Close Set rstEmployees = .OpenRecordset("Сотрудники", dbOpenSnapshot) Debug.Print "Динамический набор записей для таблицы 'Сотрудники'" Debug.Print " Updatable = " & rstEmployees.Updatable rstEmployees.Close Set rstEmployees = .OpenRecordset("Сотрудники", dbOpenForwardOnly) Debug.Print " Набор с последовательным доступом для таблицы 'Сотрудники'" Debug.Print " Updatable = " & rstEmployees.Updatable rstEmployees.Close Debug.Print "'" & .TableDefs(0).Name & "' TableDef" Debug.Print " Updatable = " & .TableDefs(0).Updatable Debug.Print "'" & .QueryDefs(0).Name & "' QueryDef" Debug.Print " Updatable = " & .QueryDefs(0).Updatable .Close End With End Sub