Поделиться через


Свойство Field.DefaultValue (DAO)

Область применения: Access 2013, Office 2013

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

Синтаксис

expression . Defaultvalue

выражение: переменная, представляющая объект Field.

Примечания

Параметр или возвращаемое значение — это тип данных String , который может содержать не более 255 символов. Это может быть текст или выражение. Если параметр свойства является выражением, он не может содержать определяемые пользователем функции, агрегатные функции SQL ядра СУБД Microsoft Access или ссылки на запросы, формы или другие объекты Field .

Примечание.

Можно также задать свойству DefaultValue объекта Field в объекте TableDef специальное значение с именем GenUniqueID( ). Это приводит к присвоению этому полю случайного числа при каждом добавлении или создании новой записи, что дает каждой записи уникальный идентификатор. Свойство Type поля должно иметь значение Long.

Доступность свойства DefaultValue зависит от объекта, содержащего коллекцию Fields , как показано в следующей таблице.

Если коллекция Fields принадлежит к

Затем Значение по умолчанию имеет значение

Объект Index

Не поддерживается

Объект QueryDef

Только для чтения

Объект Recordset

Только для чтения

Объект Relation

Не поддерживается

Объект TableDef

Чтение и запись

При создании новой записи параметр свойства 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("Northwind.mdb") 
     Set tdfEmployees = dbsNorthwind.TableDefs!Employees 
     
     ' Store original DefaultValue information and set the 
     ' property to a new value. 
     strOldDefault = _ 
     tdfEmployees.Fields!PostalCode.DefaultValue 
     tdfEmployees.Fields!PostalCode.DefaultValue = "98052" 
     
     Set rstEmployees = _ 
     dbsNorthwind.OpenRecordset("Employees", _ 
     dbOpenDynaset) 
     
     With rstEmployees 
     ' Add a new record to the Recordset. 
     .AddNew 
     !FirstName = "Bruce" 
     !LastName = "Oberg" 
     
     ' Get user input. If user enters something, the field 
     ' will be filled with that data; otherwise, it will be 
     ' filled with the DefaultValue information. 
     strMessage = "Enter postal code for " & vbCr & _ 
     !FirstName & " " & !LastName & ":" 
     strCode = DefaultPrompt(strMessage, !PostalCode) 
     If strCode <> "" Then !PostalCode = strCode 
     .Update 
     
     ' Go to new record and print information. 
     .Bookmark = .LastModified 
     Debug.Print " FirstName = " & !FirstName 
     Debug.Print " LastName = " & !LastName 
     Debug.Print " PostalCode = " & !PostalCode 
     
     ' Delete new record because this is a demonstration. 
     .Delete 
     .Close 
     End With 
     
     ' Restore original DefaultValue property because this is a 
     ' demonstration. 
     tdfEmployees.Fields!PostalCode.DefaultValue = _ 
     strOldDefault 
     
     dbsNorthwind.Close 
     
    End Sub 
     
    Function DefaultPrompt(strPrompt As String, _ 
     fldTemp As Field) As String 
     
     Dim strFullPrompt As String 
     
     ' Ask user for new DefaultValue setting for the specified 
     ' Field object. 
     strFullPrompt = strPrompt & vbCr & _ 
     "[Default = " & fldTemp.DefaultValue & _ 
     ", Cancel - use default]" 
     DefaultPrompt = InputBox(strFullPrompt) 
     
    End Function