プロが教える店舗&オフィスのセキュリティ対策術

みなさま、助けてください。
VBAのサンプルを教えて頂けると助かります。

【やりたいこと】
下記①のテーブルがあります。
フォームからボタンを押したら 組店コード別にテーブルを作成したいです。
なお、テーブル名は、下記②のテーブルを読込んで【作成テーブル名称】の名前を付与したいです。
ただし、組店コードDのように、下記②にはありますが、下記①にはないケースもあります。


【ボタン押下後にできるテーブルのイメージ】
  T_A  ←下記①の組店コードAのデータのみ格納されているテーブル
  T_B  ←下記①の組店コードBのデータのみ格納されているテーブル
  T_C  ←下記①の組店コードCのデータのみ格納されているテーブル


① テーブル名:T_明細

【組店コード】  【金額】
  A       100
  A       500
  B       200
  C       600
  C       150
  C       200


②テーブル名:パラメータテーブル
 
【組店コード】 【作成テーブル名称】
   A      T_A
   B      T_B
   C      T_C
   D      T_D

A 回答 (11件中11~11件)

クエリでは駄目でしょうか。

本来は、T_明細さえ良い物をわざわざ組合
コード別のテーブルを作るとしたら、それはもうAccessは不要では無い
でしょうか。

それをするのならば、是非Excelで作って下さい。そんな使い方をす
る為にAccessが有る訳では有りません。この場合は実体は基本表のT_明
細で、組合コード用のテーブルと言うのは仮想表のクエリで十分だと思
います。

クエリならば、単に
select * from T_明細 where id="A";

とするだけです。何もテーブルを作らなくてもこの種の方法は幾らでも
実現する方法は有ると思いますが。例えば、非連結の組合コードのテキ
ストボックスを作り、組合コードをデータ入力しての更新処理でその組
合コードにリンクしたサブフォームを作る事でもT_明細のフィルタ処理
は出来ます。

この時は、一切のvbaの処理は不要です。

実際にテーブルを作るとしたらターゲットのテーブルを一旦削除しての
初期化をしてから、追加クエリでデータを追加する事になります。

この処理をパラメータテーブルの全てのデータで回さないといけませ
ん。それで目的は達成しますが。そう言う処理と言うのは、excelにも
有る様なフィルターで十分だと思いませんか。

私が担当者なら、その様な個別のテーブルは作りません。また、貰った
人も中には他のデータを見たいと言う場合も有りますのでその様な方の要
望にはこの場合は答える事が出来ません。

その意味ではこのデータは貰う方から見れば万能では有りません。もう
少し詳しい状況を教えて下さい。
    • good
    • 0
この回答へのお礼

USUIさん、相変わらず、分かりにくい質問の書き方でごめんなさい...
そんなわたしに対して、前回の質問から引続き、親切・丁寧にご回答して頂いてありがとうございます♪

ご質問のことですが・・・

>クエリでは駄目でしょうか。本来は、T_明細さえ良い物をわざわざ組合
>コード別のテーブルを作るとしたら、それはもうAccessは不要では無い >でしょうか。

12月22日にUSUIさんから、以下のご回答を頂きました。
下記④で「テーブル作成クエリ」という言葉があったので、組合コード毎にCSVファイルで出力するため、組合コード毎のテーブル作成が必要だと、わたしが思ってしまいました。

>何もテーブルを作らなくてもこの種の方法は幾らでも
>実現する方法は有ると思いますが。例えば、非連結の組合コードのテキ
>ストボックスを作り、組合コードをデータ入力しての更新処理でその組
>合コードにリンクしたサブフォームを作る事でもT_明細のフィルタ処理
>は出来ます。

組合コードは約150種類あります。
なお、これ以上、増えることはありませんが、月によって、変動します(例えば、10月は146種類、11月は139種類)。

フォームからの入力だと、最大150回入力しないといけません。

組合コード毎にCSVファイルを作成するのは、毎月の定例作業のため、できれば、ボタン1回の押下で最大150種類のCSVファイルが出力されるようにしたいのですが...(わがままですみません)



【12月22日 USUIさんからのご回答】

フォームの出力ボタンで組合コード別のCSVを出力と言う事で有れば、
エキスポートを一つのファイル単位に出す事になります。

方法としては、
① 最初に組合コードをグループ化してテーブルに保存する
② 組合コードの数を①のテーブルから集計クエリで求める
③ エキスポートの処理ではクエリーからの処理は面倒臭い
④ 組合コード別のテーブルを作成する(テーブル作成クエリ)
⑤ エキスポートをするためのパラメータテーブルを作る
⑥ パラメータのテーブルはテーブル名とファイル名を用意する
⑦ ⑤のテーブルを読んで、EOFになる迄エキスポートする

(以下、省略)

お礼日時:2016/12/27 09:58

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