Required Property

Applies To   Field object, Index object.

Description

Sets or returns a value that indicates whether a Field object requires a non-Null value or whether all the fields in an Index object must have a value.

Settings and Return Values

The setting or return value is a Boolean that is True if a field can't contain a Null value.

For an object not yet appended to a collection, this property is read/write. For an Index object, this property setting is read-only for objects appended to Indexes collections in Recordset and TableDef objects.

Remarks

The availability of the Required property depends on the object that contains the Fields collection, as shown in the following table.

If the Fields collection belongs to a

Then Required is

Index object

Not supported

QueryDef object

Read-only

Recordset object

Read-only

Relation object

Not supported

TableDef object

Read/write


For a Field object, you can use the Required property along with the AllowZeroLength, ValidateOnSet, or ValidationRule property to determine the validity of the Value property setting for that Field object. If the Required property is set to False, the field can contain Null values as well as values that meet the conditions specified by the AllowZeroLength and ValidationRule property settings.

Note When you can set this property for either an Index object or a Field object, set it for the Field object. The validity of the property setting for a Field object is checked before that of an Index object.

See Also   AllowZeroLength property, ValidateOnSet property, ValidationRule property, ValidationText property, Value property.

Example

This example uses the Required property to report which fields in three different tables must contain data in order for a new record to be added. The RequiredOutput procedure is required for this procedure to run.

Sub RequiredX()

    Dim dbsNorthwind As Database
    Dim tdfloop As TableDef

    Set dbsNorthwind = OpenDatabase("Northwind.mdb")

    With dbsNorthwind
        ' Show which fields are required in the Fields
        ' collections of three different TableDef objects.
        RequiredOutput .TableDefs("Categories")
        RequiredOutput .TableDefs("Customers")
        RequiredOutput .TableDefs("Employees")
        .Close
    End With

End Sub

Sub RequiredOutput(tdfTemp As TableDef)

    Dim fldLoop As Field

    ' Enumerate Fields collection of the specified TableDef
    ' and show the Required property.
    Debug.Print "Fields in " & tdfTemp.Name & ":"
    For Each fldLoop In tdfTemp.Fields
        Debug.Print , fldLoop.Name & ", Required = " & _
            fldLoop.Required
    Next fldLoop

End Sub
Example (Microsoft Access)

The following example creates a new Index object on an Employees table and sets the Required property for the index. The new index consists of two fields, LastName and FirstName.

Sub NewIndex()
    Dim dbs As Database, tdf As TableDef, idx As Index
    Dim fldLastName As Field, fldFirstName As Field

    ' Return reference to current database.
    Set dbs = CurrentDb
    ' Return reference to Employees table.
    Set tdf = dbs.TableDefs!Employees
    ' Create new index.
    Set idx = tdf.CreateIndex("FullName")
    ' Create and append index fields.
    Set fldLastName = idx.CreateField("LastName", dbText)
    Set fldFirstName = idx.CreateField("FirstName", dbText)
    idx.Fields.Append fldLastName
    idx.Fields.Append fldFirstName
    ' Ensure value is entered for each field in index.
    idx.Required = True
    ' Append Index object.
    tdf.Indexes.Append idx
    Set dbs = Nothing
End Sub