• 締切済み

Accessで質問です

現在Accessでデータベースを練習で作っているのですが、フォームでIDを入れるとテストの名前が出るようにしています。(例:ID:0001を入れると自動的にテスト名:テスト1)が入力される。 これを逆にテスト1を入れるとID0001が入力できるようにできますか? テーブルとクエリは以下のようになってます。 Tテスト ・テストID(主キー) ・テスト名 T生徒 ・生徒NO(主キー) ・生徒名 ・テストID(TテストのテストIDとリレーション) Q各受験テスト ・生徒NO ・生徒名 ・テストID ・テスト名 フォームは「Q各受験テスト」を元に作っています。(すべての項目を使っています) リレーションの関係で当然「テストID」を入れると「テスト名」は自動的に入るのですが、逆のことをしたいのです。「テスト名」を入れると「テストID」が自動的に入るようにしたいのです。 よろしくお願いいたします。

みんなの回答

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.3

リレーション組み方は反対ではないでしょうか? 流れは 1.T生徒(学籍簿OR受験者)を先に登録っしておき 2.テスト結果をTテストへT生徒を追記する また主キーのデータ型はオートナンバー型 ※詳しい説明は省きますが失敗談を一つ 氏名そのものを主キーにしてシステムを開発しデータを 登録した後氏名の訂正が必要になりましたが主キーの変更は出来ず その人のデータを全て削除して再入力 従って T生徒 ・生徒ID(主キー) ・生徒NO(重複なし設定) ・生徒名 Tテスト ・テストID(主キー) ・テスト名 ・生徒ID ※フォームでは生徒IDボックスをコンボボックスにする

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

その逆なんを出すケースは観念的では。 そのテストを受けた生徒の一覧とか  出したいのでは無いのか。 質問の構成がw駆りにくい >これを逆にテスト1を入れるとID0001が入力できるようにできますか? のあとに又書いているのが、判りにくくしている。 ・関係テーブルはどれレとどれで(フィールド構成と) ・結果はどういうものが出したい を明記したら良い。

  • MRT1452
  • ベストアンサー率42% (1391/3293)
回答No.1

単純に同じ事をすれば良いって所までは行っていると思います。 あとはイベントの中の処理をどうするか。 changeイベント等だったら永久ループしそうだし。 任意の条件の場合、処理をしないという様にしないといけないでしょうね。 例えば既にテスト名が入っているなら、処理をしないとか、同じテスト名なら処理をしないとか。 もし区は力技的に画面を二種用意するとか、ラジオボタン等でどっちで検索するか切り替えるようにするとか。 色々やり様はあると思います。

関連するQ&A