- ベストアンサー
【Access2010】CSVインポート | インポートの方法とフォーマットの解説
- Access2010でのCSVファイルのインポート方法と、特定のフォーマットのCSVファイルをインポートする際の注意点について解説します。
- 特定のフォーマットのCSVファイルをインポートする際には、XXXXX部分を削除する必要がありますが、毎回削除するのは面倒です。
- しかし、Access2010では、XXXXX部分を削除せずにCSVファイルをインポートする方法があります。ここではその方法について詳しく説明します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
CSV ファイルを、ヘッダなしファイルとして解釈させます。 以降得られるフィールド名は、F1、F2、・・・ 不要な XXXXXX 部分は、2番目のフィールド以降 Null で除外判別できます。 2行目の項目名部分の項目1は、 おそらく、以降のデータを解釈した際に数値と解釈されると思うので (項目1 部分が数値として解釈されたのなら Null に置き換わります) 項目1,項目2,項目3 ↓ Null,項目2,項目3 解釈が違っても項目1の有効なデータ部分は数値の様なので・・・ そこで、IsNumeric(F1) AND F2 Is Not Null の条件を付加して インポートしたいテーブルと項目を列挙し、 それに対応する F1、F2、・・・・を記述した SQL を実行させれば終わりです。 以下は、項目3 までの記述になりますが Public Sub Samp1() Const CSQL As String = "" _ & "INSERT INTO テーブル名(項目1,項目2,項目3) " _ & "SELECT F1, F2, F3 FROM [{%1}] IN " _ & "'{%2}'[text;FMT=Delimited;HDR=No;IMEX=1] " _ & "WHERE IsNumeric(F1) AND F2 Is Not Null;" Const CPATH As String = "CSVファイルがあるフォルダへのフルパス" Const CNAME As String = "CSVファイル名" Dim sSql As String sSql = CSQL sSql = Replace(sSql, "{%1}", CNAME) sSql = Replace(sSql, "{%2}", CPATH) CurrentDb.Execute sSql End Sub ※ CSV ファイルのパスが D:\tmp\Hoge\テスト.csv だったら CPATH は、D:\tmp\Hoge CNAME は、テスト.csv