「みんな教えて! 選手権!!」開催のお知らせ

Accessでアンケート集計を行うデータベースの構築を考えています。

しかし、データベースの構築知識に浅く上手く目的のものを作れないので少しお力添えいただけないでしょうか?


このデータベースは200人のユーザーに対して行うのを目的にしています。
具体的な集計作業については結果をExcelにインポートすれば事足りると考えていますので具体的にはどのユーザーがどの問いに対して3択でどの回答をしたかが判断できればよいという風に思い次のようなテーブルを作りました。


・T_ユーザーマスタ(ユーザーコード,ログイン名,部署ID,etc)
・T_部署マスタ(部署ID,部署名)
・T_ユーザー回答マスタ(ユーザーコード,問1回答~問10回答)

これらに対して参照整合性を設定しています。


あとはフォームをつくり、WindowsのログインIDを取得して一致するログイン名のフォームが表示されドロップダウンでアンケートの回答を選択、送信ボタンで入力完了という風に出来ればいいのですが・・・


まずフォームに回答群を表示させるために、以下テーブルをつくりました。

・T_問題回答群マスタ(問題番号,選択番号,回答)
*一つの問題に対して選択が3つあるので問題番号と選択番号を主キーに設定しています。



実際、アンケートフォーム上でなんとかこれらの回答群を上手く読んでくることは確認できましたが、送信ボタンを作りマクロでデータの入力を設定してもリレーションシップを設定していないので目的のテーブルに対して入力が反映されません。

そこでリレーションを設定しようと思うのですが・・・どうしても・T_問題回答群マスタと既存のテーブルとの間のリレーションシップがの関係が頭でもPCでも作れなくて困っています。


そもそも作り方がまずいのか、はたまた発想の転換で解消できるのか、それすらも浅すぎてわかりません。


そこで以下についてお聞かせください。

(1) そもそもこういう作り方で問題ないのか、このデータベースのテーブル作成(正規化)についてのヒントをください。

(2) 「WindowsのログインIDを取得して一致するログイン名のフォームが表示されドロップダウンでアンケートの回答を選択、送信ボタンで入力完了」このイメージは現実的でしょうか?ExcelではVBAでなんとか出来ましたが、Accessでやる場合の注意点や作成のヒントをお願いします。


何しろデータベース慣れしていません。足りない知識は努力でカバーしますので、ここはこれを使うとか、これをググったらわかるとかヒントをください。お願いします。

A 回答 (2件)

参考として。



答えの入力フォームは、元になるテーブルを「T_ユーザー回答マスタ」として作成します。
これだと、他のユーザのデータまで見えてしまいますから、フィルタを使って絞り込みを行います。(SQLが使えれば、レコードセットのレベルで絞り込めばなお効率よし)
問1から問10までの答えをコンボボックスにしてみます。
・↑のフォームにコンボボックスを追加します。
・コンボボックスウイザードが起動したら、
 テーブル又はクエリの値をコンボボックスに表示する
 表示するのは「T_問題回答群マスタ」ですからそれを選んで
  とすると全ての問題とその答えが出てきちゃいますから
  問題番号ごとのクエリを作っておくといいですね。
 で、そのクエリを選んで
 表示するフィールドは選択番号と回答
 並び替え、表示幅はお好みで
 次大事です
  「次のフィールドに保存する」で問1回答~問10回答の該当するものを選びます
  ここで、コンボボックスで選んだ値を格納する項目が決定されます

 コンボボックスができたら、その前に作った問n回答のテキストボックスは消してもOKです

思いつくまま書いたので、断片的なヒントで申し訳ないです。
 
    • good
    • 0

>・T_問題回答群マスタ(問題番号,選択番号,回答)


このテーブルとリレーションシップを設定するには
>・T_ユーザー回答マスタ(ユーザーコード,問1回答~問10回答)
このような形のテーブルではだめですね

・T_ユーザー回答マスタ(ユーザーコード、問題番号、回答番号)
のようなテーブルに組み替えましょう

これで問題番号どうし、選択番号と回答番号の2つでリレーションシップが設定できるようになります
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報