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