Microsoft Access 掲示板

.AddNewでデータを登録する場合に、変数を利用する方法 / 5

9 コメント
views
4 フォロー
5
名前なし 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 個ものフィールドを持つレコードを追加することなど絶対に不可能です。

通報 ...