* 複合プライマリキーのリレーション設定方法 [#z131f3ae]
 -ページ:[[FrontPage]]
 -投稿者: トンク
 -優先順位: 低
 -状態: 完了
 -カテゴリー: Base データベース
 -投稿日: 2006-05-08 13:00:38 (月)
 -OS: Windows XP
 -バージョン: 2.0
 
 ** メッセージ [#o7f06cc7]
 サブフォームのある入力フォームを作ろうと思っています。以下のようなイメージです。
 
 【メインテーブル】&br;
 車種(イスト、ヴィッツなど)&br;
 部位(右フロントドア、エンジンなど)&br;
 メモ...&br;
 
 【サブテーブル】&br;
 車種&br;
 部位&br;
 部品(ネジ、ガラスなど)&br;
 メモ...&br;
 
 この2つのテーブルを使って、車種と部位ごとにサブフォームに部品の一覧が表示され入力できるようなフォームを作りたいと考えています。
 車種と部位で複合プライマリキーになると思うのですが、この2つのテーブル間のリレーション設定はどのようにしたらいいでしょうか?
 
 【メインテーブル】車種、部位&br;
 【サブテーブル】車種、部位、部品&br;
 をプライマリキーとして車種と部位にリレーションを設定するのかなと思っているのですが、うまくいきません。
 
 データベース自体にも詳しくないので、易しいご教授をおねがいします。
 
 
 
 
 ----
 -簡単なサンプル
 >M.Kamataki (2006-05-08 21:37:33 (月))~
 ~
 データベース設計とBaseの使い方、両方の質問ととらえました。~
 このような場合、簡単なサンプルがあると、理解の助けになると思います。そのうえで、データベース設計、Baseの使い方を具体的な疑問点を指摘されるとわかりやすいと思います。~
 わたしなりに簡単なサンプルを作ってみました。~
 #ref(395.odb)~
 テーブル設計は各テーブルをご覧ください。コードテーブルから名称を引っ張ったクエリーテーブルをつくり、フォームウィザードでそのクエリーテーブルをメインフォーム、サブフォームに部位部品テーブルを指定しています。~
 ポイントは、フォームウィザードの使い方ではないでしょうか。~
 ~
 非常に簡単なものですが、Baseの使用方法について以下のWeb上の資料があります。参考にしてください。~
 -[[オープンガイドブック OpenOffice.org 2.0:http://ooosupport.good-day.net/ja/documents/openguidebook-ooo2.0/]]~
 -[[データベース機能を活用する:http://openoffice-docj.sourceforge.jp/cgi-bin/wiki/wiki.cgi?page=%C2%E87%BE%CF+%A5%C7%A1%BC%A5%BF%A5%D9%A1%BC%A5%B9%B5%A1%C7%BD%A4%F2%B3%E8%CD%D1%A4%B9%A4%EB]]~
 -[[データベース機能を活用する:http://openoffice-docj.sourceforge.jp/wiki/index.php/Documentation/2.0Project/Part7]]~
 
 //
 -クエリーを用いるのですね
 >トンク (2006-05-08 22:32:04 (月))~
 ~
 ご返信、さらにサンプルまで作っていただき、ありがとうございます。~
 クエリーをかませる、といった感じでしょうか。じっくりと勉強させていただきます。ガイドブックではサブフォームのあたりの説明が省略されていたので、こちらに質問させていただきました。もうひとつのリンク先も、じっくり読ませていただきます。~
 ~
 投稿後、試行錯誤した結果を添付します。~
 複合プライマリキーそのままにリレーションができたような気もしています。~
 ~
 #ref(395-2.odb)~~
 ~
 もう少し見て、また疑問がわいてきたら投稿させていただきたいと思います。ありがとうございました。~
 
 //
 -完了にします
 >M.Kamataki (2006-05-08 23:13:34 (月))~
 ~
 簡単なものなら、395-2.odbのようでもかまわないと思います。今後データを再利用したいなどの用途があれば、テーブルを細分化しておくと、あとあと便利です。クエリーを使えば、まとめて表示できるというイメージです。~
 上記の「データベース機能を活用する」というのは、雑誌「UNIX USER」の記事なのですが、その後の連載でサブフォーム、レポートのグループ化に触れています。これらもいずれWebにまとめようと思っています。この連休中にできなかったのが残念ですが。~
 ~
 いちおう当初の目的は達成できたようですので、当ページは完了にします。~
 
 //
 -ありがとうございました
 >トンク (2006-05-09 12:56:57 (火))~
 ~
 「テーブルの細分化」ですね。大変参考になりました。ありがとうございました。~
 
 //
 #article
 //#comment