名前なし
2024/08/08 (木) 14:11:08
2ce57@dbee8
INSERT INTOを使ってデータの登録をする
- INSERT INTO ... VALUES ステートメントと INSERT INTO ... SELECT ステートメントのどちらを意味しているのかが不明瞭。
実際にはデータ数が多くなる
- 「レコードの件数」のことを言っているのか、「フィールドの個数」のことを言っているのかが不明。
"a", "い", "う"は、submtという配列に入っている
- 具体的にどこから参照したデータをどうやって配列として取得しているのかが不明。
実行時エラー 2147217887「要求された名前、または序数に対応する項目がコレクションに見つかりません」
- レコードの追加先となるテーブルの構造(各フィールドの名前/データ型、インデックス定義)が全く不明。
2000件くらいのデータを一括で登録する場合、
.AddNewを利用すると、INSERT INTOを利用した時と比べて、
1/5くらいの時間で処理できてる感じです
₋ 具体的なテストコードと実行時間の測定方法および測定結果が不明。
やはり、根本的な間違いをしているような気がします。
主に足りていないのは、次の 3 つについての理解でしょう。
VBA における配列の扱い方
ADODB.Recordset オブジェクトの AddNew メソッドの使い方
Access データベースにおけるテーブル/クエリの仕様
For i = 1 to 2000
List1(i) = "fact" & i & List1(i)
next
adoRs.AddNew List1, List2
仮に adoRs が参照しているのが Access データベース上のテーブルなのであれば、
1 つのテーブルに定義できるフィールドの数の上限は 255 個ですので、
2000 個ものフィールドを持つレコードを追加することなど絶対に不可能です。
通報 ...
ハンドルネームを入力し忘れました。失礼。