Шаг 140 - Свойство DefaultValue

Описание
Задает или возвращает значение по умолчанию для объекта Field. Для объекта Field, еще не добавленного в семейство Fields, данное свойство доступно для чтения/записи (только в рабочей области Microsoft Jet).

Значение
Задаваемое или возвращаемое значение данного свойства имеет тип String и может содержать до 255 символов, образующих текстовое значение или выражение. Если значением свойства является выражение, то оно не может содержать определяемые пользователем функции, статистические функции SQL ядра базы данных Microsoft Jet, а также ссылки на запросы, формы или другие объекты Field.
Имеется также возможность присвоить свойству DefaultValue объекта Field из объекта TableDef специальное значение "GenUniqueID( )". Это позволяет при добавлении или создании новой записи присваивать полю случайное число, служащее уникальным идентификатором записи. Свойство Type поля должно задавать тип Long.

Замечания
Использование данного свойства зависит от того, какой из объектов содержит семейство Fields, как показано в следующей таблице:

При создании новой записи значение свойства DefaultValue автоматически задает значение поля. Изменить заданное по умолчанию значение поля позволяет свойство Value объекта-поля.
Свойство DefaultValue неприменимо к полям с типами данных AutoNumber и Long Binary.

Пример
Следующая программа использует свойство DefaultValue, чтобы информировать пользователя о нормальном значении поля во время вывода приглашения ввести данные. Кроме того, демонстрируется заполнение новых записей с помощью свойства DefaultValue, если пользователь не вводит значение. Для выполнения данной процедуры требуется функция DefaultPrompt.

Sub DefaultValueX()

	Dim dbsNorthwind As Database
	Dim tdfEmployees As TableDef
	Dim strOldDefault As String
	Dim rstEmployees As Recordset
	Dim strMessage As String
	Dim strCode As String

	Set dbsNorthwind = OpenDatabase("Борей.mdb")
	Set tdfEmployees = dbsNorthwind.TableDefs!Сотрудники

	' Сохраняет исходное значение свойства DefaultValue 
	' и задает новое значение свойства.
	strOldDefault = tdfEmployees.Fields!Индекс.DefaultValue
	tdfEmployees.Fields!Индекс.DefaultValue = "198052"

	Set rstEmployees = dbsNorthwind.OpenRecordset("Сотрудники", dbOpenDynaset)
	With rstEmployees
		' Добавляет новую запись в объект Recordset.
		.AddNew
		!Имя = "Иван"
		!Фамилия = "Иванов"
		' Принимает данные от пользователя. Если пользователь вводит 
		' данные, они заносятся в поле; в противном случае 
		' используется значение свойства DefaultValue.
		strMessage = "Введите почтовый индекс для " & vbCr & !Имя & " " & !Фамилия & ":"
		strCode = DefaultPrompt(strMessage, !Индекс)
		If strCode <> "" Then !Индекс = strCode
		.Update
		' Переходит на новую запись и печатает данные.
		.Bookmark = .LastModified
		Debug.Print "    Имя = " & !Имя
		Debug.Print "    Фамилия = " & !Фамилия
		Debug.Print "    Индекс = " & !Индекс
		' Удаляет новую запись, созданную только для демонстрации.
		.Delete
		.Close
	End With
	' Восстанавливает исходное значение DefaultValue, измененное 
	' только для демонстрации.
	tdfEmployees.Fields!Индекс.DefaultValue = strOldDefault
	dbsNorthwind.Close

End Sub

Function DefaultPrompt(strPrompt As String, fldTemp As Field) As String

	Dim strFullPrompt As String
	' Приглашает ввести новое значение DefaultValue для 
	' указанного объекта Field.
	strFullPrompt = strPrompt & vbCr & "[Значение по умолчанию = " & fldTemp.DefaultValue & ", 'Отмена' - использовать имеющееся значение]"
	DefaultPrompt = InputBox(strFullPrompt)
End Function

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