Шаг 63 - Свойство Updatable

Описание
Возвращает значение, определяющее возможность изменения объекта доступа к данным (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

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 12.03.2002