過去の桐井戸端BBS (桐ver.9)
21611 どの表で入力してもすべてある表に反映させるようにすること(自動結合?)はできますか masa 2003/07/28-20:07
すみません。久しぶりの投稿ですが、又よろしくお願いします。
表の項目は同じですがファイル名が違う時、
例えばA表、B表〜Z表とあって、A表の金額を入れたり、訂正したり
すると、Z表も同じように追加されたり訂正され、B表、C表を追加や
訂正してもZ表に同じように反映させる方法はありますか?
(Z表が全ての表の集計明細表の感じです)

表の項目は「相手先」「締め日」「支払日」「金額」「内容」
とあり、それぞれの表でデータはたくさんあります。
(同じ相手先でも違う内容と金額でそれぞれたくさんあったりします)

(結合表も考えたのですが、上記ように同じ相手で金額だけ違う場合や
一相手先だけだったりと色々なので無理のようなので)

それから、一括処理で読み込みや追加等しない方法で、Z表をクリック
したら反映されている方法(計算式?)でお願いしたいのですが・・・

よろしくお願いします。

21614 Re:自動結合方法?について うにん 2003/07/28-21:20
記事番号21611へのコメント
>例えばA表、B表〜Z表とあって、A表の金額を入れたり、訂正したり
>すると、Z表も同じように追加されたり訂正され、B表、C表を追加や
>訂正してもZ表に同じように反映させる方法はありますか?
>(Z表が全ての表の集計明細表の感じです)

桐の結合にはSQLのUNION相当のはないので、ちょっとむずかしそう。
むしろ、Z表に入力して、他を全部結合表にするのが素直なやり方だと思います。
主キーを作っておけば単純な1表からの選択結合なので追加訂正は問題ないはずですが、共有関係がどうなるか?

21615 Re:自動結合方法?について masa 2003/07/28-21:49
記事番号21614へのコメント
うにんさん こんばんは 早速ありがとうございます。

>桐の結合にはSQLのUNION相当のはないので、ちょっとむずかしそう。
>むしろ、Z表に入力して、他を全部結合表にするのが素直なやり方だと思います。
>主キーを作っておけば単純な1表からの選択結合なので追加訂正は問題ないはずですが、共有関係がどうなるか?
>

それぞれの表に入力したものをZ表で全部表示されてほしかったので、逆には出来ないです。
となるとやっぱり無理ですかね?(フォームででも出来ればよかったのですけど)
(一括処理で、何かある度にZ表全行削除して全表読み込んでという方法しかないですかね?)


21617 Re:自動結合方法?について うにん 2003/07/29-00:30
記事番号21615へのコメント
>それぞれの表に入力したものをZ表で全部表示されてほしかったので、逆には出来ないです。

ん〜、そしたら、各表の行追加イベントでZ表にキー値を行追加して、
他の項目は表引きで表示するのはどうでしょう。

と思ったんですが、行毎に別の表から表引きはできませんので、表の数x項目数が必要になってしまいますね。
これなら、全部の表を単純にAll-Allで結合させるのと同じですね(^^;
どうやるかといいいますと、A〜Yの各表に例えば[z]という計算項目を追加し、"A"〜"Y"という計算式を設定し、
結合表ZではA〜Yをすべて[Z]で結合します。(つまり同じ値になる行が別の表にないようにして結合します)
そうすると、こんなような結果になります。
A 1
A 2
  B 1
  B 2
    C 1
    C 2
あとは1つの項目に集めるように結合表に計算式を追加すればOK。

21619 個別表に入力して集計表に集めたい 佐田 守弘 2003/07/29-01:14
記事番号21611へのコメント
masaさん
質問内容を確認しますと、A表〜Y表が個別の表で、Z表がそれらを全て
集めた集計表の様なものになっている。そしてこれらの個別表A〜Yの
各表のいずれかに入力したら、それらが全てZ表にも反映されたいという事ですね。

● 個別表の入力行を集計表にコピーして行く力技
イベントを使う必要がありますが、A〜Yの個別表で入力が完了したら
その行をZ表に複写するという方法は考えられないでもありません。
但しお奨めできる方法ではありませんので、ここでは考え方だけお話します。
・新規行の追加を行った後
行挿入終了イベントで行追加ないし行挿入が完了した後に、その行データを
Z表に書き込みます。全項目の値を変数に格納し、Z表を共有で開いて、
行追加で書き込むなどの方法が考えられます。
・既存行を訂正した時
この時にも既に書き込んであるZ表の該当する行を書き換える必要があるでしょう。
問題はどの行が対応する行であるかを判定する方法です。このために、
個別表の名前と個別表のIDをZ表に記録しておき、該当する行を検索して
訂正する事になります。

● 本来はこうすべきです
なぜA〜Yの個別表に分けて入力する必要があるのかが良く分りません。
もしどうしてもそのようにする必要があるなら、Z表を必要とする度に
A〜Yの全表を読み込んで作成するのが正しいやり方です。

そして更に本来どうすべきかを言えば、Z表1つを使って共有で皆が
入力するのが本当です。そして、A表〜Y表に該当するデータだけを
表示させ、他の表に該当するデータを見せたくないのであれば、
グループ化したフォームを用いれば済む話です。
あるいは結合表を使って、該当するレコードだけを自動的に絞り込んで
表示する様にしても同じです。

いずれにしても元データは1つであり、必要なデータだけを絞り込んで
必要な処理だけを許可し、他のデータはあっても見せないようにする方法が
本来のデータベースの使い方だと思います。

佐田守弘(KS-00119)


21626 Re:どうも有難うございました。 masa 2003/07/29-10:38
記事番号21611へのコメント
うにんさん 佐田さん どうも有難うございます。

別の表からZ表に集計させるように考えましたのは、毎月変わるけど確定している金額、
予想で入れてる金額、毎月一定金額の表が幾つかあって
それぞれ個別で管理していたのでこうなってしまったのですが、
「1つの表を共有で入力するのが普通」という事で、もう一つ項目を付けて 確定 予想 毎月 を
入れる事で1つの表で対応したいと思いました。
どうも有難うございました。

戻る