Field Object (DAO)
S’applique à : Access 2013, Office 2013
Un objet Field représente une colonne de données avec un type de données courantes et un ensemble commun de propriétés.
Remarques
Les collections Fields des objets Index, QueryDef, Relation et TableDef contiennent les spécifications pour les champs que représentent ces objets. La collection Fields d'un objet Recordset représente les objets Field sur une ligne de données ou dans un enregistrement. Vous utilisez les objets Field dans un objet Recordset pour lire et définir des valeurs pour les champs dans l'enregistrement actuel de l'objet Recordset.
Dans un espace de travail Microsoft Access, vous manipulez un champ à l'aide d'un objet Field et de ses méthodes et propriétés. Par exemple, vous pouvez :
Utiliser la propriété OrdinalPosition pour définir ou renvoyer l'ordre de présentation de l'objet Field dans une collection Fields.
Utiliser la propriété Value d'un champ dans un objet Recordset pour définir ou renvoyer les données stockées.
Utiliser les méthodes AppendChunk et GetChunk et la propriété FieldSize pour obtenir ou définir une valeur dans un champ Objet OLE ou Mémo d'un objet Recordset.
Utiliser les propriétés Type, Size et Attributes pour déterminer le type de données qui peut être stocké dans le champ.
Utiliser les propriétés SourceField et SourceTable pour déterminer la source originale des données.
Utiliser la propriété ForeignName pour définir ou renvoyer des informations sur un champ externe dans un objet Relation.
Utiliser les propriétés AllowZeroLength, DefaultValue, Required, ValidateOnSet, ValidationRule ou ValidationText pour définir ou renvoyer les conditions de validation.
Utiliser la propriété DefaultValue d'un champ dans un objet TableDef pour définir la valeur par défaut pour ce champ lorsque de nouveaux enregistrements sont ajoutés.
Pour créer un objet Field dans un objet Index, TableDef ou Relation, utilisez la méthode CreateField.
Lorsque vous accédez à un objet Field dans le cadre d’un objet Recordset, les données de l’enregistrement actif sont visibles dans la propriété Value de l’objet Field. Pour manipuler des données dans l’objet Recordset , vous ne référencez généralement pas directement la collection Fields . au lieu de cela, vous référencez indirectement la propriété Value de l’objet Field dans la collection Fields de l’objet Recordset .
Pour faire référence à un objet Field dans une collection par son numéro ordinal ou par son paramètre de propriété NameName, utilisez l'une formes de syntaxe suivantes :
Fields(0)
Fields("nom")
Champs ! [name]
Avec les mêmes formes de syntaxe, vous pouvez également renvoyer à la propriété Value d'un objet Field que vous créez et ajoutez à une collection Fields. Le contexte de la référence de champ détermine si vous faites référence à l'objet Field ou à la propriété Value de l'objet Field.
Exemple
Cet exemple indique les propriétés valides pour un objet Field en fonction de l'emplacement de l'objet Field (par exemple, la collection Fields d'un objet TableDef, la collection Fields d'un objet QueryDef, etc.). La procédure FieldOutput est nécessaire à l'exécution de cette procédure.
Sub FieldX()
Dim dbsNorthwind As Database
Dim rstEmployees As Recordset
Dim fldTableDef As Field
Dim fldQueryDef As Field
Dim fldRecordset As Field
Dim fldRelation As Field
Dim fldIndex As Field
Dim prpLoop As Property
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
Set rstEmployees = _
dbsNorthwind.OpenRecordset("Employees")
' Assign a Field object from different Fields
' collections to object variables.
Set fldTableDef = _
dbsNorthwind.TableDefs(0).Fields(0)
Set fldQueryDef =dbsNorthwind.QueryDefs(0).Fields(0)
Set fldRecordset = rstEmployees.Fields(0)
Set fldRelation =dbsNorthwind.Relations(0).Fields(0)
Set fldIndex = _
dbsNorthwind.TableDefs(0).Indexes(0).Fields(0)
' Print report.
FieldOutput "TableDef", fldTableDef
FieldOutput "QueryDef", fldQueryDef
FieldOutput "Recordset", fldRecordset
FieldOutput "Relation", fldRelation
FieldOutput "Index", fldIndex
rstEmployees.Close
dbsNorthwind.Close
End Sub
Sub FieldOutput(strTemp As String, fldTemp As Field)
' Report function for FieldX.
Dim prpLoop As Property
Debug.Print "Valid Field properties in " & strTemp
' Enumerate Properties collection of passed Field
' object.
For Each prpLoop In fldTemp.Properties
' Some properties are invalid in certain
' contexts (the Value property in the Fields
' collection of a TableDef for example). Any
' attempt to use an invalid property will
' trigger an error.
On Error Resume Next
Debug.Print " " & prpLoop.Name & " = " & _
prpLoop.Value
On Error GoTo 0
Next prpLoop
End Sub
Cet exemple utilise la méthode CreateField pour créer trois objets Fields pour un objet TableDef. Il affiche ensuite les propriétés de ces objets Field, qui sont automatiquement définies par la méthode CreateField. (Les propriétés dont les valeurs sont vides lors de la création de Field ne sont pas affichées.)
Sub CreateFieldX()
Dim dbsNorthwind As Database
Dim tdfNew As TableDef
Dim fldLoop As Field
Dim prpLoop As Property
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
Set tdfNew = dbsNorthwind.CreateTableDef("NewTableDef")
' Create and append new Field objects for the new
' TableDef object.
With tdfNew
' The CreateField method will set a default Size
' for a new Field object if one is not specified.
.Fields.Append .CreateField("TextField", dbText)
.Fields.Append .CreateField("IntegerField", dbInteger)
.Fields.Append .CreateField("DateField", dbDate)
End With
dbsNorthwind.TableDefs.Append tdfNew
Debug.Print "Properties of new Fields in " & tdfNew.Name
' Enumerate Fields collection to show the properties of
' the new Field objects.
For Each fldLoop In tdfNew.Fields
Debug.Print " " & fldLoop.Name
For Each prpLoop In fldLoop.Properties
' Properties that are invalid in the context of
' TableDefs will trigger an error if an attempt
' is made to read their values.
On Error Resume Next
Debug.Print " " & prpLoop.Name & " - " & _
IIf(prpLoop = "", "[empty]", prpLoop)
On Error GoTo 0
Next prpLoop
Next fldLoop
' Delete new TableDef because this is a demonstration.
dbsNorthwind.TableDefs.Delete tdfNew.Name
dbsNorthwind.Close
End Sub