sk
2024/08/08 (木) 14:58:13
2ce57@dbee8
上記のようなExcelファイルをフォームのクリック時イベントでダイアログボックスからインポートしたい
ファイルダイアログによって選択された Excel ブック上に 2 つ以上のワークシートが存在していた場合はどのワークシートを参照するのか。
選択されたブック上から参照したワークシートのレイアウト(列の名前/位置)が規定のものとは一致しているか否かを、インポートする直前に検査する必要はないのか。
①1行目(注文数というタイトル)は取込不要
②2行目をフィールド名として使う
③取り込みたいのは支店番号、支店名・注文数量のフィールドのみ
④取り込みたい行数はA列(支店番号)の最終行まで
今のところ考えられるのは概ね次のいずれかの方法。
「Excel ブックから任意のセル範囲をテーブルとして参照し、任意のフィールドを選択した結果を Access データベース上の任意のテーブルに追加するクエリ( SQL )」を実行する。
「Excel ブックから任意のセル範囲をテーブルとして参照し、任意のフィールドを選択した結果」と「レコードの追加先となるテーブル」をそれぞれ DAO(または ADO )の Recordset オブジェクトとして取得し、前者の全てのレコードを後者に追加するループ処理を実行する。
オートメーションによる Excel アプリケーションの操作と DAO(または ADO )のレコードセットの操作を連携させる。
ただし 1 と 2 の方法の場合、参照元であるセル範囲の各列のデータ型を明示的に指定することはできないため、いずれかのレコードにおいて型変換エラーが発生したり、あるいは意図しないデータ型に変換されてデータが欠損する可能性があります。
通報 ...