お世話になります。
ある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で質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Outlook(アウトルック) 【 Windows 10 】アドレス帳に正しくインポートを完了させたい。 3 2023/04/23 13:41
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- XML PHP.laravelについて 1 2023/07/06 15:26
- 写真・ビデオ iphoneからPCへ写真をインポート、保存先がわかりません。 2 2022/09/29 02:06
- Access(アクセス) スキルシートのエクセルの項目に 2 2023/04/04 22:41
- Access(アクセス) Access2016のExcelインポートの機能のことで教えてください 1 2022/09/11 14:58
- Excel(エクセル) Power Query で取り込むデータのパスを相対パスに出来ませんか? 3 2022/04/05 18:31
- Excel(エクセル) エクセル テーブル機能の不明点 2 2022/04/14 14:10
- WordPress(ワードプレス) インポートできない 2 2023/06/24 01:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
セルの右クリックで出る項目を...
-
Oracle 2つのDate型の値の差を...
-
ORACLEでLONG項目からCHAR項目...
-
エクセルグラフの凡例スペース
-
Access テキスト型に対する指定...
-
ピボットテーブルについて 列フ...
-
条件に一致した列の非表示の仕...
-
Accessの表形式のフォームについて
-
指定した項目の列削除
-
Access又はExcelで256項目を超...
-
複数のレコードを1つのレコード...
-
datファイルからaccessにインポ...
-
空白をそのままインポートする...
-
SQL*Loaderでのゼロ埋め
-
APN設定について教えていただけ...
-
2行目を表示できますか?
-
Excelの表、重複データ2行を1...
-
SIMロックなしと言う項目がない...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
Access テキスト型に対する指定...
-
Oracle 2つのDate型の値の差を...
-
エクセルグラフの凡例スペース
-
SUBSTRING 関数に渡した長さの...
-
ORACLEでLONG項目からCHAR項目...
-
必須入力項目と入力必須項目
-
セルの右クリックで出る項目を...
-
BIOSでAHCIに設定したいが、項...
-
複数のレコードを1つのレコード...
-
APN設定について教えていただけ...
-
VBAで複数の数式セルを最終行ま...
-
2行目を表示できますか?
-
Accessで数値型にNULLをInsert...
-
access2000:フォームで入力し...
-
SQLでの変数の扱いについて
-
SELECT文でLEFT関数を使うと未...
-
空白をそのままインポートする...
-
他テーブルで一致する列から名...
おすすめ情報