Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Crée un enregistrement pour un objet Recordset pouvant être mis à jour.
Syntaxe
recordset.AddNew FieldList, Values
Paramètres
recordset
Objet Recordset.
FieldList
Optionnel. Nom unique, tableau de noms ou positions ordinales des champs dans le nouvel enregistrement.
Valeurs
Optionnel. Valeur unique ou tableau de valeurs pour les champs du nouvel enregistrement. Si Fieldlist est un tableau, les valeurs doivent également être un tableau avec le même nombre de membres ; sinon, une erreur se produit. L’ordre des noms de champs doit correspondre à l’ordre des valeurs de champ dans chaque tableau.
Remarques
Utilisez la méthode AddNew pour créer et initialiser un nouvel enregistrement. Utilisez la méthode Supports avec adAddNew (valeur CursorOptionEnum ) pour vérifier si vous pouvez ajouter des enregistrements à l’objet Recordset actif.
Après avoir appelé la méthode AddNew, le nouvel enregistrement devient l’enregistrement actif et reste actif après avoir appelé la méthode Update. Étant donné que le nouvel enregistrement est ajouté à l’objet Recordset, un appel à MoveNext suivant la mise à jour se déplace au-delà de la fin du jeu d’enregistrements, ce qui rend EOF True. Si l’objet Recordset ne prend pas en charge les signets, il se peut que vous ne puissiez pas accéder au nouvel enregistrement une fois que vous passez à un autre enregistrement. Selon votre type de curseur, vous devrez peut-être appeler la méthode Requery pour rendre le nouvel enregistrement accessible.
Si vous appelez AddNew lors de la modification de l’enregistrement actif ou lors de l’ajout d’un nouvel enregistrement, ADO appelle la méthode Update pour enregistrer les modifications, puis crée le nouvel enregistrement.
Le comportement de la méthode AddNew dépend du mode de mise à jour de l’objet Recordset et de la transmission des arguments Fieldlist et Values .
En mode de mise à jour immédiate (dans lequel le fournisseur écrit des modifications dans la source de données sous-jacente une fois que vous appelez la méthode Update ), l’appel de la méthode AddNew sans argument définit la propriété EditMode sur adEditAdd (valeur EditModeEnum ). Le fournisseur met en cache toutes les modifications de valeur de champ localement. L’appel de la méthode Update publie le nouvel enregistrement dans la base de données et réinitialise la propriété EditMode à adEditNone (valeur EditModeEnum). Si vous passez les arguments Fieldlist et Values , ADO publie immédiatement le nouvel enregistrement dans la base de données (aucun appel de mise à jour n’est nécessaire) ; La valeur de la propriété EditMode ne change pas (adEditNone).
En mode de mise à jour par lots (dans lequel le fournisseur met en cache plusieurs modifications et les écrit dans la source de données sous-jacente uniquement lorsque vous appelez la méthode UpdateBatch ), l’appel de la méthode AddNew sans argument définit la propriété EditMode sur adEditAdd. Le fournisseur met en cache toutes les modifications de valeur de champ localement. L’appel de la méthode Update ajoute le nouvel enregistrement à l’ensemble d’enregistrements actif, mais le fournisseur ne publie pas les modifications apportées à la base de données sous-jacente, ou réinitialise le EditMode à adEditNone, jusqu’à ce que vous appeliez la méthode UpdateBatch . Si vous passez les arguments Fieldlist et Values , ADO envoie le nouvel enregistrement au fournisseur pour le stockage dans un cache et définit editMode sur adEditAdd ; vous devez appeler la méthode UpdateBatch pour publier le nouvel enregistrement dans la base de données sous-jacente.
Exemple :
L’exemple suivant montre comment utiliser la méthode AddNew avec la liste de champs et la liste de valeurs incluses, pour voir comment inclure la liste de champs et la liste de valeurs en tant que tableaux.
create table aa1 (intf int, charf char(10))
insert into aa1 values (2, 'aa')
Dim cn As New adodb.Connection
Dim rs As New adodb.Recordset
Dim cmd As New adodb.Command
cn.ConnectionString = "Provider=SQLOLEDB;Data Source=alexverb2;uid=sa;pwd=<password>;"
cn.Open
rs.Open "select * from xxx..aa1", cn, adOpenKeyset, adLockOptimistic
Dim fieldsArray(1) As Variant
fieldsArray(0) = "intf"
fieldsArray(1) = "charf"
Dim values(1) As Variant
values(0) = 4
values(1) = "as"
rs.AddNew fieldsArray, values
rs.Update
S’applique à
Voir aussi
AddNew, méthode - Exemple (VB)
AddNew, méthode - Exemple (VBScript)
AddNew, méthode - Exemple (VC++)
CancelUpdate, méthode (ADO)
EditMode, propriété
méthode Requery
prend en charge la méthode
Update, méthode
méthode UpdateBatch