Как правильно добавить новые записи для освобождения recordset вручную?

Как добавить новые записи на новый и пустой 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
11
задан Deanna 8 May 2012 в 03:42
поделиться

3 ответа

In-place:

rs.AddNew "SomeFieldName", "SomeValue"

Или in-place нескольких полей

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

Или используя отдельные vars

Dim Fields As Variant
Dim Values As Variant

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

Edit: This is how to synthesize a recordset for the AddNew sample above

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

I'm usually using a helper function CreateRecordset as seen this answer.

Обновление 2018-11-12

Вы также можете использовать индексы полей как ординалы вместо имен полей как строк для массива fields, как здесь

rs.AddNew Array(0, 1), Array("SomeValue", 1234)
15
ответ дан 27 October 2019 в 04:18
поделиться
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
5
ответ дан 27 October 2019 в 04:18
поделиться

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

sSql="INSERT into mytable (somefieldname, anotherfieldname) values  ('Somevalue','Anothervalue')"
      Conn.Execute sSql
0
ответ дан 27 October 2019 в 04:18
поделиться