次の方法で共有

256項目を超えるCSVファイルの取り込み方法について

Anonymous
2018-10-17T02:41:20+00:00

いつもお世話になってます。

CSVデータを取り込みたいのですが項目が500以上あり

リンクやインポートなどを行っても256以降の項目を

Accessに取り込むことができません。

毎日新たなCSVデータが送られてきて

CSVファイルを直接編集して取り込むのを避けたいです。

自動で取り込めればと考えています。

出来れば1~3列、120~125列、420~430列と複数指定してインポートできるか

いったんAccess側から指定のCSVを分割するなどしたいです。

CSVファイル名は「date.csv」と毎日同じです。

列も固定なので変更はありません。

1行目に項目名が「,」区切りで

2行目からデータが「","」で区切られています。

データ量は最大で1万行くらいです。

ID,Name,Tanka,Bikou,・・・530項目まで続きます

"1","名前1","1500","定価は2,000です",・・・

"2","名前2","38250","定価は45,000です",・・・

"3","名前3","189587","定価は215,000です",・・・

1~3列目、120~125列目、420~430列目のみをAccessに取り込みたい。

良い方法があればお願いいたします。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません
質問作成者が受け入れた回答
  1. Anonymous
    2018-10-17T12:11:38+00:00

    古い記事でVBAで「Split」を使って「,」を読んでというのがあり試していますが

    備考などで「,」文字が使われていて取り込む際にズレが生じ悪戦苦闘しております…

    ということは、VBAでcsvを読み込んで、変数に代入するところまではできているのですね。

    区切り文字が「,」で、データ内に「,」がはいっている、ということですね。

    csvフォーマットでは、テキストデータは「" 」で囲むという仕様になってますが、

    そうなってますか。

    例えば、

    "AAAAAA","BBB,BBB","CCCCC","EEE,EEE"

    というように。

    そうなっていれば、 「","」をSplitの区切り文字にすればいいでしょう。

    そうなっていなければ、区切り文字の「,」とデータ内の「,」は区別できないので、不可能案件ですね。

    3 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません

5 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2018-10-17T03:51:46+00:00

    どこにどのように取り込むのでしょうか。

    Accessのテーブルでは、フィールドの最大数は255ですので、

    そのままの形ではテーブルには取り込めません。

    複数のテーブルに分割して取り込むことになりますね。

    インポートやリンクでは当然255の制限が付いてきますので、無理です。

    VBAでテキストとして変数に読み込んで、それをVBAで複数のテーブルに分割して書き込んでいくことになりますね。

    ありがとうございます。

    毎朝早朝にmdbファイルを自動実行し以下の処理をさせたいと思っています。

    FTP上に自動アップロードされたCSVを自社内ファイルサーバー上にダウンロードします。

    ファイル名は「date.csv」です。ここまでは問題なくできました。

    保存された「date.cs」の1~3列目、120~125列目、420~430列目を

    LIST.mdbの「date」テーブルに自動処理で追加したいです。

    しかしCSVの列が530項目ほどあり、取り込みたい項目が420番以降のため、

    リンクやマクロを使ったインポートでは取り込むことができませんでした。

    古い記事でVBAで「Split」を使って「,」を読んでというのがあり試していますが

    備考などで「,」文字が使われていて取り込む際にズレが生じ悪戦苦闘しております…

    0 件のコメント コメントはありません
  2. Anonymous
    2018-10-17T03:28:34+00:00

    ありがとうございます。

    マクロで取り込む場合、列が255までしか取り込まれないため

    256列以降の項目も取り込めないかいろいろ探していましたが

    なかなか良い方法が見つかりません・・・

    0 件のコメント コメントはありません
  3. Anonymous
    2018-10-17T03:22:51+00:00

    どこにどのように取り込むのでしょうか。

    Accessのテーブルでは、フィールドの最大数は255ですので、

    そのままの形ではテーブルには取り込めません。

    複数のテーブルに分割して取り込むことになりますね。

    インポートやリンクでは当然255の制限が付いてきますので、無理です。

    VBAでテキストとして変数に読み込んで、それをVBAで複数のテーブルに分割して書き込んでいくことになりますね。

    0 件のコメント コメントはありません
  4. Anonymous
    2018-10-17T02:58:32+00:00

    どういう取り込み方法をしているのか分からないですが、

    access の方でマクロを組んで対象データを取り込めばいいのではないでしょうか。特に難しい話ではないと思います。

    0 件のコメント コメントはありません