Access2003での質問です。


まず、CSVファイルをインポートするのですが、CSVの列が
郵便番号、住所、担当者、品名1、部数1、品名2、部数2、品名3、部数3、と
品名と部数が10まで横に並んでいます。

品名と部数1つにつき、1行にしたく、クエリで、
郵便番号、住所、担当者、品名1、部数1、と並べたテーブルを作りました。
※ファイル名:分裂

同じように、
郵便番号、住所、担当者、品名2、部数2と追加クエリをつくり、
分裂に蓄積されるようにしましたが、この方法で、10個のクエリを
作るのは大変で、かつ、毎日、新しいCSVファイルに対して、この作業を
しなくてはいけません。

AccessにCSVファイルを取り込んで、ボタンひとつかなにかで、
簡単に上記のようなことができるマクロなどありましたら教えてください。

Access初心者にて、詳しく教えていただけますと幸いです。

回答の条件
  • URL必須
  • 1人2回まで
  • 13歳以上
  • 登録:2010/12/13 13:30:55
  • 終了:2010/12/20 13:35:02

回答(2件)

id:k-tan2 No.1

k-tan2回答回数401ベストアンサー獲得回数482010/12/13 17:14:26

ポイント35pt

CSVファイルをインポートしてできるテーブルをデータを削除して、別名のテーブル名にします。

この別名のテーブルに対して、クエリを作成します。このクエリも残しておきます。

次回からは、CSVファイルをインポートします。

あらかじめ用意しておいた別名のテーブルに、データをコピペします。

で、あらかじめ用意しておいたクエリを開くだけで、該当する結果が求められます。

>AccessにCSVファイルを取り込んで、ボタンひとつかなにかで、

>簡単に上記のようなことができるマクロなどありましたら教えてください。

汎用的なマクロでないので、自分で作るしかないです。

上記の方法なら、テーブルから別テーブルへのデータコピー程度で済みます。

手動でコピペしてもしれてます。

http://q.hatena.ne.jp/answer

id:kia_44 No.2

きあ回答回数396ベストアンサー獲得回数302010/12/14 20:52:02

ポイント35pt

まず、CSVをテーブルにすべて書き込みます。このテーブルをテーブルAとします。


テーブルAから

クエリ1:住所、担当者、品名1、部数1とする追加クエリ

クエリ2:住所、担当者、品名2、部数2とする追加クエリ

という形でクエリを10個作ります。

※クエリ1をSQL表示させて、エクセルのオートフィル使えば簡単に済むと思います。うまくいかない場合、文字列を連結してSQLを書いてしまうと効率上げられます。


テーブルAを空にするクエリを作ります。これをクエリCとしておきます。


マクロで、

クエリ1~10までと、クエリCを実行するように設定します。


ボタンにマクロを登録。


文面から推察すると、CSVから10回インポートしているんだろうと思いますが、一度テーブルにすべてを格納すれば

インポートの作業は不要になるはずです。

テーブルAを手作業、そのあとは既存のクエリを使用するマクロで消化する。という風にできますか?


VBAもありなら下記(自分のメモですが)が参考になるかもしれません。

以前CSVインポートをやろうとして調べまくったことがありまして。

ほんとメモなので、説明が全く入ってませんが。

http://memo.bz/access/csvinport/

http://memo.bz/access/accessfile/

ボタンで一発でとなると、結構大変でした。

下記のURLは2chのdatファイルをaccessに読み込んでみようかと思って作ったものなんですが、

上記に出したURL2つのものを使用しています。参考になるかも。

http://memo.bz/access/2chconv/

  • id:kia_44
    http://memo.bz/access/csvinpsam/
    ページ作ったので宣伝。サンプルもあるよ!
    回答で出したものより使いやすいかと思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません