「これはヤバかったな」という遅刻エピソード

Access 2000のテーブルを指定した行数分に分割して、csv形式にエクスポートしたいと思っています。
例えば、100万件のデータを20万件×5ファイル、というイメージです(対象件数/分割件数ともに一定ではありません)

自分で考えてみたのですが、上位20万件をクエリ→削除クエリ→上位20万件をクエリ→削除クエリ・・・という
方法しか思い浮かばず、もっと簡単に出来る方法をお教えいただければと思います。
よろしくお願いします。

A 回答 (5件)

#3です。



>考え方は同じでしょうか。
同じですね。

では、ループで読みながらコーディングでcsvに吐き出す
というのはどうでしょう?
カウンターで20万件ごとにファイル名を変えれば
良いかと思います。

あと別のmdbからリンクはって、ループで読みながら、TEBLEを20万件毎に作るとか。
    • good
    • 0
この回答へのお礼

ありがとうございます。
調べてみたのですが「ループで読みながらコーディング」というのが分かりません。
お手数でなければ、詳しく教えていただければと思います。

お礼日時:2005/02/21 13:08

#1です。


こんなにたくさんのデータは扱ったことがないのですが、
秀和システムのはじめての裏技に次のようなものがあります
・順位の何位~何位を指定してデータを抽出する。
・指定した順位までのデータを抽出する。

ここに参考ファイルがあります
解凍後、ura_vba chap05 waza133 と開いて
参考ファイルを参照してみてください。

気に入ったら本を買ってあげてください。

参考URL:http://www.shuwasystem.co.jp/books/7980/0752-8/0 …
    • good
    • 0
この回答へのお礼

ありがとうございます。
まだチラッとしか見ていないですが、近いことができそうな感じがします。

お礼日時:2005/02/21 13:06

自分なら、


・フィールドを1つ増やす
・全件読みながら1から番号を振っていく
・選択クエリーでエクスポート
=>0 And < 200000
=>200000 And < 400000
=>200000*i And < 200000*(i+1)

をi=0からint(件数/200000)までループ
でやるかなぁ。(回数はも少しキチンとコーディングするとして)
    • good
    • 1
この回答へのお礼

最初は、フィールド(オートナンバー)を追加して選択クエリで1~20万、20万1~40万・・・とエクスポートしようと思ったのですが。データ量が大きすぎるためかエラーでフィールドを追加することができませんでした。

[全件読みながら1から番号を振っていく]のところが理解できなかったのですが、考え方は同じでしょうか。

ありがとうございました。

お礼日時:2005/02/15 15:22

簡単にというわけにはいかないと思います。


元のテーブルを削除してしまってもよい or 複写してもよい(時間的にも)であれば、お考えの方法でよろしいかと思います。
たしかに、VBA等を駆使して元のテーブルを加工せずに行なうのであれば、
抽出するクエリーの条件に、「前回抽出した情報の最終値より○×大きい?小さい?」等の条件を入れるようにして
条件をコントロールするするしかないでしょう。
この場合、判定の元になるフィールドの値が同値のレコードが複数存在しないようにしなければいけませんが。

回答には程遠いかもしれませんね~
    • good
    • 0
この回答へのお礼

自分で作業するには、全く苦にならない事なのですが。
他の人が作業するときに、もっと簡単に出来る方法があれば良いなー、と思いまして。
VBAと聞いただけで・・・(-_-;)

どうもありがとうございます。

お礼日時:2005/02/15 15:11

質問中に削除クエリーと書かれていますが、



エクスポートはクエリーからもできます

選択クエリーを作成して、そのクエリーをエクスポートすれば良いのではないでしょうか。

この回答への補足

質問者です。補足させていただきます。
テーブルには、連番ではない数字が格納されているフィールドがあります。

私が考えた方法は、以下の通りです。
1)数字を比較して上位20万件を選択クエリで抽出してエクスポート
2) 1)でエクスポートしたデータを除くために元となるテーブルから1)のデータを削除クエリで削除
3) 2)のクエリ結果の中からまた上位20万件を選択クエリで抽出してエクスポート



と繰り返す

補足日時:2005/02/15 12:04
    • good
    • 0
この回答へのお礼

説明不足ですみません。
お答えの通り、選択クエリ(20万件)を作成してエクスポート。
元のテーブルからエクスポートした20万件を削除、という方法なのですが。

お礼日時:2005/02/15 12:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A