2010-02-19 3 views
9

Как добавить новые записи в новый & пустой ADODB.Recordset вручную?Как правильно добавить новые записи в пустой набор записей вручную?

Прямо сейчас, вот что я делаю, что не работает:

Dim rs as ADODB.Recordset 
rs.Open 
Dim Fields() as String 
Fields(0) = "SomeFieldName" 

Dim Values() as String 
Value(0) = "SomeValue" 

rs.AddNew Fields, Values 

ответ

13

на месте:

rs.AddNew "SomeFieldName", "SomeValue" 

Или в месте несколько полей

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

Или с использованием отдельных варов

Dim Fields As Variant 
Dim Values As Variant 

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

Edit: Это, как синтезировать для записей образца AddNew выше

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

Я обычно с помощью вспомогательной функции CreateRecordset как видно this answer.

+0

Не могли бы вы включить декларацию и подготовку записей до проведения AddNew() вызов? Я хочу убедиться, что я делаю все, что нужно сделать, не больше и не меньше. – bitcycle

+0

Добавлен код образца набора записей – wqw

+0

Вы действительно спасли мне жизнь! –

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

С открытым соединение Conn:

sSql="INSERT into mytable (somefieldname, anotherfieldname) values ('Somevalue','Anothervalue')" 
     Conn.Execute sSql 
Смежные вопросы