過去の桐井戸端BBS (桐ver.8)
7928 サブフォルダ内の一括処理を呼び出すには? kaz 2000/10/04-17:06
kazと申します。またお世話になります。

メインの処理とサブの処理を同じフォルダ内に置こうと思いましたが,ファイル名が同じものがあるため
サブフォルダを作ってその中にサブの処理を置こうと思います。

1)同じファイル名があって処理が正常に行われるか?
2)サブフォルダの一括処理を呼び出す方法は?

上記2点についてお教え願えないでしょうか?
7930 Re:サブフォルダ内の一括処理を呼び出すには? 悲しげ 2000/10/04-20:01
記事番号7928へのコメント
どもっ、kazさん

私見では、こういうやり方はど〜かな?と思います。
その理由は、まず一括処理を「呼び出す」ことはできません。と断定的に云っ切ってしまっていいのかどうか
ちょいとナンですけど(^^;)、続けます。

他一括処理を利用するにはふたつの方法があります。
ひとつは「一括処理実行」コマンドです。
これはcmdファイルをパス名付きで指定してやれば他フォルダの一括処理を実行することは可能です
(ただしイベントでは使用できないとされています)。
 (例) 一括処理実行 "D:\Dat\Uriage\Kokyaku.cmd",登録処理
ただし「一括処理実行」コマンドでは、元cmdとは完全に無縁となり、他のcmdに行きっぱなしになってしまって、
元のcmdに戻ることはできません。
元cmdに戻るには、再度「一括処理実行」コマンドで元cmdをパス付きで記述する必要があります。
ふたつめは、「ライブラリ」コマンドです。
これは自分の一括処理に他一括処理(cmd)を一時的に「読み込む」と云うやり方です。
こっちの方が幾分マシなような気がします。

実はcmdファイルの所在自体は2の次でして、一番問題となるのはデータパスの問題です。
データパスの記述に気を付けさえすれば、サブフォルダにて同じファイル名のデータを扱うことは全く問題はありません
(と思う、勘違いしそうなのでやったことはないけど)。
一括処理の記述において「データパス名」コマンドをうまく指定して下さい。
ただ、私なら、その処理が頻繁に使うものであるならば、ミスを防ぐために、メインとサブの処理で使用するファイル名に
微変更を加えて、別ファイル名にすると思います。
そしてデータは複数フォルダに分散させてもかまいませんが、しかしながらcmdの方は1本でも数本でも
同じフォルダ内でマネジメントした方がやりやすいと思います。
7931 Re:サブフォルダ内の一括処理を呼び出すには? kaz 2000/10/04-21:08
記事番号7930へのコメント
悲しげさん こん**は

いつもの素早いres 本当に感激です。

ご指摘のふたつの方法
1)「一括処理実行」コマンド

2)「ライブラリ」コマンド

そして3つめの
 >メインとサブの処理で使用するファイル名に微変更を加えて、別
 >ファイル名にすると思います。そしてデータは複数フォルダに分散させ
 >てもかまいませんが、しかしながらcmdの方は1本でも数本でも同じフ
 >ォルダ内でマネジメントした方がやりやすいと思います。

実は,何となくですが3つめを考えておりましたが,書き直しの面倒くささでいまいちその気になれなかったのですが・・・・・
サブフォルダ内一括処理で作成したデータをメイン処理で作成したデータと一緒にして(読み込みで)
集計処理をするのですから,やはり,面倒でも3)の方法が良いのかなと
思い始めておりますが・・・・・・・・・。

7934 Re:サブフォルダ内の一括処理を呼び出すには? 悲しげ 2000/10/04-22:01
記事番号7931へのコメント
kazさんwrote

>ご指摘のふたつの方法
>1)「一括処理実行」コマンド
>2)「ライブラリ」コマンド

いえ、私が云いたかったのは、複数の一括処理の利用法はどちらかと云うと2の次で、
もしデータをサブフォルダに分けるのならば「データパス名」の記述の方が大切だと云う方に力点があります。

>サブフォルダ内一括処理で作成したデータをメイン処理で作成したデータと
>一緒にして(読み込みで)集計処理をするのですから,やはり,面倒でも
>3)の方法が良いのかなと思い始めておりますが・・・・・・・・・。

最後の「が・・・・」がどちらに転ぶ含意なのかは意味シンですが(^^;)、
いずれにせよ一括処理の書き換えは必要です。その書き換えが、ファイル名記述の変更か、
データパス名記述の変更となるか、何れの方がより簡単(あるいは確実?)かと云う問題として立てた方がいいと思います。
7935 Re:サブフォルダ内の一括処理を呼び出すには? kaz 2000/10/04-22:19
記事番号7934へのコメント
悲しげさん こんばんは

>いえ、私が云いたかったのは、複数の一括処理の利用法はどちらかと云うと
>2の次で、もしデータをサブフォルダに分けるのならば「データパス名」の
>記述の方が大切だと云う方に力点があります。

わかりました。本格的なプログラムを知らない私にとって2)のほうがスマートな書き方なのかな・・という風に思ったのでした。

>いずれにせよ一括処理の書き換えは必要です。その書き換えが、ファイル名
>記述の変更か、データパス名記述の変更となるか、何れの方がより簡単(あ
>るいは確実?)かと云う問題として・・・・・・

ファイル数は23ほどあります。
データパス記述の変更箇所は15カ所ぐらいです。
ファイル名を変えた方が作業は大変そうですが何となく処理がすっきりしていいかなとおもいます。
が,フォルダ内にファイルが多くなり(別に問題では無いのですが)目的のファイルが探しにくい感じがします。
7936 Re:サブフォルダ内の一括処理を呼び出すには? 佐田 守弘 2000/10/04-22:39
記事番号7931へのコメント
kazさん
サブフォルダ内の一括処理を実行したり、サブフォルダ内の各種のファイル(フォームやレポートなど)を開くといった事は
原則論としては可能です。
更に、サブフォルダではなく、別のドライブ、別のフォルダを呼び出す事も原則論としては可能です。
方法としては、悲しげさんが書かれている事とほとんど同じですが、
相対パス名ないしは、絶対パス名を付けて一括処理を実行します。
または、データパス名コマンドでカレントのフォルダをサブフォルダに移動し、
そこをカレントのフォルダとして以降の処理を実行すると言った方法になります。

そして重要な事は、データベース単位でフォルダを分ける場合には、
始めからきちんとしたフォルダ構成の設計をしておく事が重要です。

●その用途としては
私が良く使う事ですが、桐の各種のシステム(データベースと言っても良い)の総合メニューを作るといったケースです。
つまり、名刺管理、個人住所録、経費帳、撮影記録、etc. といった様々なデータベースの総合メニューを作り、
そのメニューからここのデータベースを開くといった時に使っています。

気を付けなければならない事として、相対パス名で指定するのが良いのか、絶対パス名で指定するのが良いのかです。
複数のパソコンで使い、かつ、それらのパソコンでディレクトリ構成が違う場合でも動作できるようにするのは、
結構面倒ではありますが、不可能ではありません。

●一括処理を呼び出す
桐の一括処理は、サブルーチン的に呼び出せるものではなく、
実行してその一括処理に制御を完全に引き渡してしまうものです。
つまり、呼び出した一括処理から元の一括処理に戻る手段はありません。
ただし、これもクリアする方法があります。
詳しくは私のHPの桐ver.5関連の一括処理サンプルに掲載してありますが、
共通変数に現在の一括処理ファイル名を書き込んでおき、これを戻る時に実行させる方法で、
あたかもサブルーチンコールの様に見せ掛ける事は可能です。

●フォルダはデータベースの単位
異論はあるかと思いますが、私の持論で申し上げますと、桐では1つのフォルダが1つのデータベースと
解釈すべきだと思っております。
これはAccessではデータベースファイル(mdb)ファイル内にテーブルやフォーム、モジュールといった一式のデータを
まとめて持っているのと同じ考え方です。
つまり
@桐は関連する表やフォーム、一括処理を1つのフォルダにまとめておく事
Aそのフォルダには関係のないファイルは入れない事。
B異なるデータベースは別のフォルダに分ける事。
これを大原則と考えるべきだと思っております。

■ kazさんの場合について考えると
最後に述べた事から分かると思いますが、単に同じファイル名で重複するおそれがあるからといった事で、
1つのデータベースの集りをサブフォルダに分けるべきではありません。

不可能ではありませんが、多分、将来的に大きな禍根を残す事が予測されます。
もちろん、それを充分に考慮してフォルダ構成の設計を行い、「それぞれ関連のないデータベースであるから、
分ける事が必要であり、分けるべきと判断した」
というのであれば、分ける事は当然の事であります。

佐田守弘(KS-00119)
7938 ありがとうございました!!! kaz 2000/10/05-02:49
記事番号7936へのコメント
悲しげさん 佐田さん ありがとうございました。 

また一つ(以上ですね)勉強しました。

今までは,一括処理ファイルをいくつか作成して
それぞれの処理をしておりました。(初期設定.CMD 印刷処理.CMD・・・)
固有変数がどうなってしまうのかという不安を抱えながら。

一つの一括処理ファイルの中に,すべて記述するのが
コマンドや変数などの重複も無くなり多少行数が増えても
間違えないということと理解いたしました。

悲しげさんご指摘の通りどちらが手間がかからないか考えましたが,
やってみないとわからない私の力では判断が付かず,
結局4時間ほどかけましてファイル名変更と,各ファイルの再定義を行いました。
何とか無事動きました。

戻る