クエリを使用して、CSV データを Access テーブルに直接インポートします。
クエリを使用すると、使用可能な CSV フィールドのサブセットを簡単に選択できます。また、クエリには、アクセス先フィールドのデータ型との互換性のために CSV 値を変換する関数を含めることができます。
INSERT INTO tblFromCSV ( FK_ID, CD, [TIMESTAMP], ts_as_datetime )
SELECT
CLng(csv.FK_ID),
UCase(csv.CD),
csv.TIMESTAMP,
CDate(csv.ts_as_datetime)
FROM [Text;HDR=yes;Database=C:\share\Access\].[sample.csv] AS csv;
SQL の最初の行にリストされているフィールド名 はINSERT INTO tblFromCSV (<here>)
、インポートされたデータを格納する Access テーブルのフィールドの名前です。すべてのテーブル フィールドに値を指定し、それらの値をテーブル フィールドと同じ順序で指定する場合は、そのフィールド リストを省略できます。私は通常、関係なくフィールドをリストします。
このFROM
句でHDR=yes
は、CSV ソース ファイルの最初の行にフィールド名が含まれていることを示しています。CSV ファイルがそうでない場合は、を使用しますHDR=no
。Access は、fld1、fld2 などの偽の名前を CSV フィールドに割り当てます。
CSV にフィールド名が含まれている場合、Access フィールドの名前と一致する必要はありません。
クエリ デザイナーで同様のクエリを作成する場合は、次のFROM
ように句が変更される可能性があることに注意してください。
FROM (Text;HDR=yes;Database=C:\share\Access\) sample.csv AS csv;
その場合は、元に戻して構文エラーを回避してください。
句を機能させるには、SELECT
クエリだけから始めることをお勧めします。FROM
次に、必要に応じて CSV 値を変換するために必要な関数を追加します。そのSELECT
クエリが必要なものを返したら、それをクエリに変換しINSERT
ます。
私の希望は、同様のクエリがあなたの状況で機能する場合、CSV データを Access に取得するための仲介者として Excel を必要としないことです。