Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
指定件数でファイル分割出力する方法
投稿日時: 18/08/24 12:26:06
投稿者: けん太

あるテーブルをCSV出力しますが、出力を行う際に
指定件数で分割する方法は、ありますでしょうか?
例)700件のテーブルデータを分割出力 指定件数:200件
   200件、200件、200件、100件 の4ファイル出力
 
 
それとも、出力された結果を分割するほうが、早いですか?

回答
投稿日時: 18/08/24 13:17:02
投稿者: Suzu

一般機能でズバリそのものの機能は存在しません。
 
 
Access側の手法として思いつくのは方法2つ。
ただし、どちらも、並び順が定義されている必要があります。
 
 
方法1 クエリにて、分割
       (並び順がユニークに決定される必要あり。
        並び順にならべた時、並び順のフィールドが 同じ値のレコードが複数存在してはいけない。)
 1. SELECT 句に、TOP 200 を指定したクエリを作成【クエリA】
  2. 抽出条件に、【クエリA】の並び順のフィールドの値を指定し、並び順が遅くなるレコードを取得
     更に、TOP 200 を設定【クエリB】
  3. 2と同じ考え方で、分割数分のクエリを準備し、それぞれをCSV出力。
 
 
方法2 ワークテーブル
        (並び順はユニークでなくても可)
  1. 出力レコードを一度、ワークテーブル【WT1】に出力。
     また、同じ構造でレコード無しのワークテーブル【WT2】を用意。
  2. 【WT1】に対し、SELECT TOP 200 を指定したクエリを作成
     そのクエリから、CSV出力。更に【WT2】へ追加クエリを使用し出力
  3. 【WT1】から、【WT2】のレコードを削除。 2〜3繰り返し。
 
Accessのみでなら、上記方法あるいは、その応用でしょう。
 
 
でも。。CSVの分割ツールもありますし、出力ファイルをツールでいじるのが安易ですよね。
(ヘッダー有りファイルの場合、分割後のファイルにも、自動でヘッダーつけてくれるソフト。。
  さがせば有りそうかな。。)

投稿日時: 18/08/24 13:29:05
投稿者: けん太

 Suzuさん
 
ありがとうございます。
Accessではかなり手間が発生するようですね。
対応方をご教授頂きありがとうございます。
勉強になりました。
 
別途、下記に対応したEXCELファイル分割TOOLを作成していますので、そちらで対応するようにします。
 
 
>(ヘッダー有りファイルの場合、分割後のファイルにも、自動でヘッダーつけてくれるソフト。。
  さがせば有りそうかな。。)
 
ファイル編集の手順で他APで作業する行程削減を考えていたのですが。。。

投稿日時: 18/08/24 13:30:01
投稿者: けん太

解決済みチェック忘れです。
失礼いたしました。