
お世話になります。
あるCSVファイルをインポートしたいのですが、以下のようなフォーマットです。
XXXXXX
項目1 項目2 項目3 ・・・
1 ああ いい
2 うう ええ
一覧?外にあるXXXXXの部分があるので、普通にインポートできません。
もちろんXXXXXXの部分を削除した状態でインポートすればよいのですが、当該CSVファイルは変更したくありません。
※このインポート作業は日々行うことになりそうなので、都度、XXXXX部分を削除するのが面倒でもあります。
このようなフォーマットのものをインポートすることは可能なのでしょうか。
ご教授の程、宜しくお願い致します。
No.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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
Access テキスト型に対する指定...
-
Access2000のフォームのテキス...
-
エクセルグラフの凡例スペース
-
SQLでの並べ替えを数字の順番に...
-
2行目を表示できますか?
-
ワードで4段組みで文章を書い...
-
SQLでの変数の扱いについて
-
【マクロ】列を折りたたみ非表...
-
SELECT DISTINCT...
-
エクセルで離れたセルを範囲指定
-
複数のレコードを1つのレコード...
-
セルの右クリックで出る項目を...
-
他テーブルで一致する列から名...
-
BIOSでハードウェアの仮想化を...
-
ORACLE SQL 文末 文字列 削除の...
-
accessで最小公倍数を求める
-
datファイルからaccessにインポ...
-
Tabキーでの項目間の移動
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】列を折りたたみ非表...
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
Oracle 2つのDate型の値の差を...
-
Access テキスト型に対する指定...
-
ワードで4段組みで文章を書い...
-
エクセルグラフの凡例スペース
-
access2000:フォームで入力し...
-
ORACLEでLONG項目からCHAR項目...
-
アリエクで買った商品が破損し...
-
SUBSTRING 関数に渡した長さの...
-
必須入力項目と入力必須項目
-
他テーブルで一致する列から名...
-
空白をそのままインポートする...
-
セルの右クリックで出る項目を...
-
VBAで複数の数式セルを最終行ま...
-
複数のレコードを1つのレコード...
-
SQL*Loaderでのゼロ埋め
-
Accessレポートで特定条件で改...
-
指定した項目の列削除
おすすめ情報