過去の桐井戸端BBS (桐ver.8) |
16947 | メインフォームとサブフォームのリンクはどうして自動設定されるのでしょうか | 二神 章 | 2002/08/11-23:01 |
例えば、50名の食事内容の嗜好(例:昼食に選択した食事内容を、めん類、丼もの、 パスタ、その他などと大まかに分類し一定期間の状況を記録していく)を一覧表で作成し、 個人の食事の選択状況が分かりやすいようにフォームをうまく作ってみたいのですが、糸口がつかめません。 おそらくサブフォームというものを理解すれば自分のイメージに近づくと思うのですが、 桐活用ガイドのフォームの定義と編集を読んでも、メインフォーム&サブフォームのリンクが どうして自動設定されるのか、理解に苦しんでいるレベルです。 50名の基礎データが入っているテーブル(氏名、ふりがな、性別、年齢、住所等)、 また、毎回のデータを入力するテーブルは、氏名、日付、食事内容、食事内容の大分類、 備考といった設定をしています。 | |||
16954 | Re:メインフォームサブフォームのリンクとは | MIT | 2002/08/12-13:48 |
記事番号16947へのコメント 二神 章さん 私は桐のメインサブフォームを使った事が無いのですが 一般論として今回ご思案の2テーブルの関係について説明させて頂きます。 50名の基礎データが入っているテーブル このテーブルが「親」になります。 毎回のデータを入力するテーブル このテーブルが「子」になります。 親子としたのは「親」がいないと「子」は生まれないという意味からです。 また、1つの「親」で「子」は複数生まれる場合があります。 今回の事例では日々の食事内容がそれになります。 親子の絆が今回「リンク」と表現されている部分ですが 親子関係が正しく結びつく必要があります。 氏名でリンクすると同姓同名があった時、正しく結ばれません。 親を識別する為に「重複しない値」が親側に1つ必要です。 これは数字でも文字列でも重複しなければかまいません。 考えるのが面倒なら連続する数字(連番)で良いでしょう。 具体例としては 基礎データが入っているテーブルに このテーブル内で重複しない値が入る項目(仮に数字で親番号)を1つ追加します。 毎回のデータを入力するテーブルにも上記で作成した項目と 同じデータ型の項目を1つ追加します(これも仮に数字で親番号) (同じ項目名にしておくと後の設定が楽かと思います) 親子の絆、リンクは2つのテーブル間で親番号=親番号となるものになります。 記録されていくデータは 50名の基礎データが入っているテーブル 項目[親番号]には50行で重複しない値が入っている 1 太郎 2 花子 3 三郎 毎回のデータを入力するテーブル 項目[親番号]には同じ人が食事回数だけ同じ番号が複数行入っている 1 8月11日 めん類 1 8月12日 丼もの 2 8月11日 パスタ 2 8月12日 丼もの 3 8月11日 めん類 3 8月12日 パスタ こんな感じになります。 メインサブフォームを作成する時、作成手順として先にサブフォームを 作成する事になるかと思いますが、 サブフォーム側は食事内容で複数行表示(一覧表、又は伝票)とした時、 これをまとめるグループとして先の親番号を指定します。 次にメイン側のフォームを作成する時、サブフォーム側の何とリンクするかの 指定でこの親番号を指定します。 最初にメインサブフォームは使った事が無いと書きましたが、 桐ではデータ量が多くなった時、こういったフォームだと応答性が悪くなるので 私は使わない事にしています。 いずれにしても、親子関係が正しく記録されておれば他のフォーム形式に変更しても、 あるいは異なるデータベースシステムに移行したとしてもデータが無駄になってしまう事はありません。 以上あまり的を突いていませんがご参考まで。MIT | |||
16969 | ありが | 章 | 2002/08/13-23:04 |
記事番号16954へのコメント MITさん、早速ご教示いただきありがとうございました。 おかげさまで頭のなかの霧が晴れてきました。(もとから靄っておりますが…) グループの指定というものが理解できたので、あとはうまくいけそうです。 アクセスをかじってみても、そのたびに桐の魅力に引き戻されております。 かといって初級の域をでれないレベルなので、いつも教えてもらってばかりです。 これからも、よろしくお願いします。 | |||
16986 | 重ね重ねのお礼 | 二神 章 | 2002/08/14-17:59 |
記事番号16975へのコメント いろいろありがとうございました。 今回のアドバイスで自身のイメージにそったフォームを作成することができました。 また、未知の設定に苦しむこともあるかと思いますが、性懲りもなく質問させて頂きますのでよろしくお願いします。 |