2010-02-19 4 views

Répondre

13

en place:

rs.AddNew "SomeFieldName", "SomeValue" 

Ou en place plusieurs champs

rs.AddNew Array("SomeFieldName", "AnotherFieldName"), Array("SomeValue", 1234) 

Ou en utilisant des vars séparés

Dim Fields As Variant 
Dim Values As Variant 

Fields = Array("SomeFieldName") 
Values = Array("SomeValue") 
rs.AddNew Fields, Values 

Edit: Voici comment synthétiser un échantillon recordset pour l'AddNew ci-dessus

Set rs = new Recordset 
rs.Fields.Append "SomeFieldName", adVarChar, 1000, adFldIsNullable 
rs.Fields.Append "AnotherFieldName", adInteger, , adFldIsNullable 
rs.Open 

J'utilise généralement une fonction d'aide CreateRecordset comme on le voit this answer.

+0

Pourriez-vous inclure la déclaration et la préparation du recordset avant la addnew() appeler? Je veux m'assurer que je fais tout ce qui doit être fait, ni plus ni moins. – bitcycle

+0

Ajout d'un exemple de code – wqw

+0

Vous m'avez sauvé la vie! –

3
set rs = new ADODB.Recordset 
rs.Open "Select SomeFieldName, AnotherFieldName FROM MyTable", myConnection, adOpenDynamic, adLockOptimistic 

rs.AddNew 
rs("SomeFieldName").Value = "SomeValue" 
rs("AnotherFieldName").Value = 1 
rs.Update 

rs.AddNew 
rs("SomeFieldName").Value = "AnotherValue" 
rs("AnotherFieldName").Value = 2 
rs.Update 

rs.Close 
0

Avec une connexion ouverte Conn:

sSql="INSERT into mytable (somefieldname, anotherfieldname) values ('Somevalue','Anothervalue')" 
     Conn.Execute sSql 
Questions connexes