web-dev-qa-db-ja.com

空のレコードセットに手動で新しいレコードを適切に追加するにはどうすればよいですか?

新しい空の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
12
bitcycle

所定の位置に:

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

編集:これは、上記のAddNewサンプルのレコードセットを合成する方法です。

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

私は通常、ヘルパー関数CreateRecordsetを使用しています この回答

更新2018-11-12

このように、フィールド配列の文字列としてフィールド名の代わりに、フィールドインデックスを序数として使用することもできます。

rs.AddNew Array(0, 1), Array("SomeValue", 1234)
15
wqw
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
C-Pound Guru

オープン接続の場合Conn:

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