Append, méthode (ADO)
S’applique à : Access 2013, Office 2013
Ajoute un objet à une collection. S’il s’agit de la collection Fields, un nouvel objet Field peut être créé avant d’être ajouté à la collection.
Syntaxe
collection. Append , objet
champs. Ajout de Nom, Type, DefinedSize, Attrib, FieldValue
Paramètres
Paramètre | Description |
---|---|
collection | Objet Collection. |
fields | Collection Fields. |
object | Variable objet représentant l'objet à ajouter. |
Name | Valeur String contenant le nom du nouvel objet Field. Ce nom doit être différent de ceux des autres objets de la collection Fields. |
Type | Valeur DataTypeEnum qui, par défaut, est définie à adEmpty et qui spécifie le type de données du nouveau champ. Les types de données suivants ne sont pas pris en charge par ADO et ne doivent pas être utilisés lors de l'ajout de nouveaux champs à un objet Recordset: adIDispatch, adIUnknown, adVariant. |
DefinedSize | Facultatif. Valeur de type Long représentant la taille définie, en caractères ou en octets, du nouveau champ. La valeur par défaut de ce paramètre est dérivée de Type. Les champs dont la valeur DefinedSize est supérieure à 255 octets sont traités comme des colonnes de longueur variable. (La valeur DefinedSize par défaut n'est pas spécifiée.) |
Attrib | Facultatif. Valeur FieldAttributeEnum, définie par défaut à adFldDefault, qui spécifie les attributs du nouveau champ. Si cette valeur n’est pas spécifiée, le champ contient les attributs dérivés de Type. |
FieldValue | Facultatif. Variant représentant la valeur du nouveau champ. S'il n'est pas spécifié, le champ est ajouté avec la valeur Null. |
Remarques
Parameters, collection
Vous devez définir la propriété Type d'un objet Parameter avant de l'ajouter à la collection Parameters. Si vous sélectionnez un type de données de longueur variable, vous devez également attribuer une valeur supérieure à zéro à la propriété Size.
Lorsque vous décrivez vous-même des paramètres, vous limitez le nombre d'appels du fournisseur et vous obtenez de meilleures performances lorsque vous utilisez des procédures stockées ou des requêtes paramétrées. Toutefois, vous devez connaître les propriétés des paramètres associés à la procédure stockée ou à la requête paramétrée que vous voulez appeler.
Faites appel à la méthode CreateParameter pour créer des objets Parameter dotés des paramètres de propriété appropriés et la méthode Append pour les ajouter à la collection Parameters. Vous pouvez ainsi définir et renvoyer des valeurs de paramètres sans avoir à appeler le fournisseur pour obtenir les informations appropriées. Si vous faites appel à un fournisseur qui ne fournit pas de données de paramètre, vous devez utiliser cette méthode pour remplir manuellement la collection Parameters sans quoi vous ne serez pas en mesure d'employer un quelconque paramètre.
Fields, collection
Le paramètre FieldValue est valide uniquement lors de l’ajout d’un objet Field à un objet Record , et non à un objet Recordset . Avec un objet Record , vous pouvez ajouter des champs et fournir des valeurs en même temps. Avec un objet Recordset , vous devez créer des champs pendant la fermeture de l’objet Recordset , puis ouvrir l’objet Recordset et affecter des valeurs aux champs.
Remarque
Pour les nouveaux objets Field ajoutés à la collection Fields d'un objet Record, la propriété Value doit être définie avant les propriétés Field. Il faut d'abord attribuer une valeur spécifique à la propriété Value et appeler Update sur la collection Fields. Il sera alors possible d'accéder aux autres propriétés comme Type ou Attributes.
Une erreur se produit si vous tentez d'ajouter des objets Field ayant les types de données suivants (DataTypeEnum) à la collection Fields : adArray, adChapter, adEmpty, adPropVariant et adUserDefined. De même, les types de données suivants ne sont pas pris en charge par ADO : adIDispatch, adIUnknown et adIVariant. L'ajout de ces derniers ne génère pas d'erreur mais vous risquez d'obtenir des résultats imprévisibles et notamment des pertes de mémoire lorsque vous les utilisez.
Recordset
Si vous ne définissez pas la propriété CursorLocation avant d'appeler la méthode Append, CursorLocation prend automatiquement la valeur adUseClient (une valeur CursorLocationEnum) lorsque la méthode Open de l'objet Recordset est appelée.
Vous obtenez une erreur d'exécution lorsque la méthode Append est appelée sur la collection Fields d'un objet Recordset ouvert ou d'un objet Recordset dont la propriété ActiveConnection a été définie. Vous ne pouvez ajouter des champs qu'à un objet Recordset qui est fermé et qui n'a pas encore été connecté à une source de données. Ceci se produit, en principe, lorsqu'un objet Recordset est créé à l'aide d'une méthode CreateRecordset ou qu'il est assigné à une variable objet.
Enregistrement
Vous n'obtenez pas d'erreur d'exécution lorsque la méthode Append est appelée sur la collection Fields d'un objet Record ouvert. Le nouveau champ est ajouté à la collection Fields de l'objet Record. Si l'objet Record est dérivé d'un objet Recordset, le nouveau champ n'apparaît pas dans la collection Fields de l'objet Recordset.
Vous pouvez créer un champ non existant et l'ajouter à la collection Fields en affectant une valeur à ce champ comme s'il existait déjà dans la collection. Cette affectation déclenche la création et l'ajout automatiques de l'objet Field, puis son exécution effective.
Une fois l'objet Field ajouté à la collection Fields d'un objet Record, appelez la méthode Update de la collection Fields pour enregistrer cette modification.