これ何て呼びますか

初心者のため、お願いします。

Access2003を使用しています。複数のグループがあります。そのグループを掛け持ちしている方が何人もいます。そこで、名前を入れるとどのグループに属しているのかを引いてくるものを作りたいと思います。

まずはテーブルをデザインビューで作成しナンバー(主キー)、グループ名ここで、グループメンバーを羅列すると約80人ものメンバーを項目としてグループ員1、2・・としなければなりません。

グループ毎にテーブルを作ってグループ員名を書くほうが良いのでしょうか。

良い方法をお教えください。お願いします。

A 回答 (4件)

グループ(No、グループ名)のテーブル


人(No、指名)のテーブル
グループと人(グループNo、人No)のテーブル

でどうでしょう?

この回答への補足

早速のお返事ありがとうございます。ぜひ、やってみます。

補足日時:2007/09/13 10:09
    • good
    • 0

>複数のグループがあります。

そのグループを掛け持ちしている方が何人もいます
こういう関係をグループと人とが多対多の関係にあるといいます

>グループメンバーを羅列すると
これは絶対にやってはいけません
テーブル作成の基本原則に違反します

多対多の関係のときのテーブル作成の基本は

[グループマスタ](グループID、グループ名、内容、・・・)
[人名表](人名コード、氏名、性別、生年月日、住所、電話、・・・)
[構成員表](グループID、人名コード)

構成員表は縦に長いものになります

この回答への補足

早速のお返事、ありがとうございます。やってみます。

補足日時:2007/09/13 10:11
    • good
    • 0

<Members>


ID__MName
1___鈴木 一郎
2___中村 太郎
3___木下 裕子
4___谷中 由美

<Groups>
ID__GName
1___A
2___B
3___C
4___D

<NameList>
Group_ID_______長整数・・・・・・・・SELECT Groups.ID, Groups.GName, * FROM Groups;
Member_ID_____長整数・・・・・・・・SELECT Members.ID, Members.MName, * FROM Members;
加入年月日____日付/時刻型
脱会年月日____日付/時刻型

Group_ID__Member_ID___加入年月日___脱会年月日
A____________鈴木 一郎___2007/08/01
A____________中村 太郎___2007/08/01
B____________鈴木 一郎___2007/09/01
C____________木下 裕子___2007/09/01
D____________谷中 由美___2007/10/01

<クエリ>
MName______GName
鈴木 一郎__A
鈴木 一郎__B

SELECT Members.MName, GROUPs.GName
FROM Members INNER JOIN (GROUPs INNER JOIN NameList ON GROUPs.ID = NameList.Group_ID) ON Members.ID = NameList.Member_ID
WHERE (((Members.MName) Like '鈴木*'));

最後のクエリを作成したいとの質問かと思います。

<Members>は、いわば商品マスター。
<Groups>は、いわば顧客マスター。
<NameList>は、いわば売上伝票。
クエリは、<Members>の販売先一覧のようなもの。
こういう考えでどうでしょうか?

この回答への補足

早速のお返事ありがとうございます。これは、Access VBAで作ったものですね。とても勉強になります。ありがとうございます。使わせていただきます。

補足日時:2007/09/13 10:09
    • good
    • 0

No1です。


指名→氏名の間違いです。失礼しました。
    • good
    • 0

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