• 締切済み

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/17068)
回答No.2

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

全文を見る
すると、全ての回答が全文表示されます。
  • MRT1452
  • ベストアンサー率42% (1392/3296)
回答No.1

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

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • アクセスで、1つのフィールドに2つのリレーションをかけると。

    メールのデータベースを作っています。 T_メール本体のテーブル (フィールド項目は) ID(主キー) 宛先名 件名 本文 T_CCリストのテーブル (フィールド項目は) メールID(主キー) ID 宛先名 T_BCCリストのテーブル (フィールド項目は) メールID(主キー) ID 宛先名 これに、T_メール本体のIDとT_CCリストのIDをリレーションさせて さらに、T_メール本体のIDとT_BCCリストのIDをリレーションさせると いうのは可能でしょうか?こうすると、表示は出来ますが、入力及び更新が出来なくなるのですが。 以上、よろしくお願い致します。

  • アクセスについて教えてください。

    アクセス2002 XP使用 Aテーブル ID 氏名 電話番号 住所  などの個人情報入力 Bテーブル ID (リレーションするためのID主キー) 管理ID 購入商品 上記のように今作っているのですが、AテーブルIDとBテーブルは1対多でのリレーションしてます。 フォームで帳票形式で見たとき、 管理NOの数だけレコード表示されるのはいいのですが、 AテーブルID 1に対し、管理IDが111と三件分あるとして、(勿論BテーブルIDには123となってます) AテーブルID1にひとつ、受付NOを追加して、   ID  受付NO  管理ID   1   1    1   1   2    1   1   3    1   2   1    2   2   2    2   3   1    3 見たいに受付NOがIDごとに123。。。と自動入力されル洋にしたいのですがどのようにすればできますか?素人なので説明もうまくできなくわけが変わらないかもしれませんがおしえてください。よろしくお願いします。

  • Access2007 「レコードを追加できません」

    Access2007で困っております。 フォーム上からテキスト型のデータを入力しようとしても 「レコードを追加できません、テーブル’T_アルバム’の結合キーがレコードセットにありません。」 と表示されうまく入りません。 【テーブル構成】 ★が主キー (1)T_アルバム ★アルバムID テキスト型 アルバム名 テキスト型 ジャンルID テキスト型 ソースID テキスト型 アーティストID テキスト型 (2)T_曲目 ★曲ID テキスト型 曲名 テキスト型 トラックNo テキスト型 アルバムID テキスト型 (3)MT_アーティスト ★アーティストID テキスト型 アーティスト名 テキスト型 (4)MT_ジャンル ★ジャンルID テキスト型 ジャンル名 テキスト型 (5)MT_ソース ★ソースID テキスト型 ソース名 テキスト型 【リレーション】 ※いずれも参照整合性付き (1)T_アルバム アルバムID --- (2)T_曲目 アルバムID (1)T_アルバム アーティストID --- (3)MT_アーティスト アーティストID (1)T_アルバム ジャンルID --- (4)MT_ジャンル ジャンルID (1)T_アルバム ソースID --- (5)MT_ソース ソースID フォーム作成のために「Q_アルバム情報入力」をつくりました。 アルバムID T_アルバム アルバム名 T_アルバム アーティストID MT_アーティスト アーティスト名 MT_アーティスト ジャンルID MT_ジャンル ジャンル名 MT_ジャンル ソースID MT_ソース ソース名 MT_ソース この「Q_アルバム情報入力」を使って、フォームウィザードからフォームを作成し、 アルバムIDやアルバム名を入力しようとすると 「レコードを追加できません、テーブル’T_アルバム’の結合キーがレコードセットにありません。」 と表示されます。 他のフィールドは値が入力できますが、これら2つのフィールドのみ入力できません。 なお、各テーブルのフィールドには予めデータが入っている状態です。 宜しくお願い致します。

  • (ACCESS)連番取得について

    アクセスで顧客管理をしています。 DMax関数を用いて、レコードを追加する度に自動で連番を振る設定に したいと思っていますが、上手くいかないため質問させてください。 【テーブル名】T_顧客一覧 【入力用のフォーム名】F_顧客登録 【連番を入力させたい項目(フィールド名)】No(テーブルでは主キーに設定) とし、フォームの”No”の既定値に   =DMax("No","T_顧客一覧")+1 と入力するのですが、フォームには1としか表示されません。 非常に初歩的な質問だとは思うのですが、 何か原因として考えられることがありますでしょうか? 情報が足りないようでしたら補足させていただきます。 よろしくお願いします。

  • アクセスのフォーム、コードを入れると名前が出るのはなぜ?

    アクセス初心者ですが、フォームを作成時、疑問に思って考えるほど混乱してしまいました。 例えば、 Aテーブル:日付、店コード、売上のフィールドを作る。(主キーなし) Bテーブル:店コード、店名(主キーは店コード) リレーションは店コード(B)→店コード(A)に結び、すべての整合性にチェック それぞれのテーブルに、数件のデータを入力 この状態で入力フォームをウィザードで作ったのです。 Aテーブルからすべてのフィールド、Bテーブルから生徒氏名を選び、ウィザード任せにフォームを作りました。 このとき、できたフォームで出席番号を入れると何もしないのに、自動的に生徒氏名が入ってしまいます。 人に聞くと当たり前でしょ、みたいに言われたのですが、なんとなくわかるようでわかりません。どうして自動的に入るのでしょうか?ふりがなの自動入力みたいな設定をしたというのならわかるのですが、何もしてないのに。 すみません、自分でも、リレーションとか整合性とかについて、あるいはまだフォームとテーブルの関係について、よくわかってないせいなのだろうとは思うのですが、そこの所も合わせ、どなたか、分かりやすく教えていただけますか?宜しくお願いします。

  • Access2000 / 「レコードを追加できません」

    こんにちは Access2000で困っております。 簡単にいいますと、フォーム上から日付/時刻型のデータを入力しようとしても 「レコードを追加できません、テーブル’T外部集計警備’の結合キーがレコードセットにありません。」と表示されうまく入りません。 テーブルの構成ですが、 ★が主キー (1)T現場台帳 ★NO(オートナンバー型) 現場記号(テキスト型) ・ ・ 省略 (2)T外部集計警備 ★NO(オートナンバー型) 現場記号(テキスト型) 警備依頼日付(日付/時刻型) 警備会社ID(数値型) 集計人数(数値型) (3)T警備会社 ★警備会社ID 警備会社名(テキスト型) ・ ・ 省略 上記テーブルはリレーションがかかっており、 (1)T現場台帳.現場記号(テキスト型)----(2)T外部集計警備.現場記号(テキスト型) (2)T外部集計警備.警備会社ID(数値型)---(3)T警備会社.★警備会社ID それぞれ、参照整合性のついたリレーションです。 更にこれらをまとめるために、Q警備会社集計クエリ(選択クエリ)をつくりフォームに利用しています。 Q警備会社集計クエリの構成 T現場台帳.担当者ID T外部集計警備.警備依頼日付 T外部集計経緯日.警備会社ID T警備会社.警備会社名 T外部集計警備.集計人数 (並べ替えや絞込みは、なし) この「Q警備会社集計クエリ」を使って フォームからウイザードを使用してフォームを作成し、警備依頼日付を入力しようとすると「レコードを追加できません、テーブル’T外部集計警備’の結合キーがレコードセットにありません。」と表示されます。 どなたか、Accessの痒いところまで手の届く方、お助けください。

  • Access サブフォームのリレーションに関して

    標記の件よろしくお願いします。 メイフォームとサブフォームを メインフォーム ID オートナンバー型 主キー設定設定あり。 サブフォーム  ID 数値型(長整数) 主キー設定なし。 の条件でリレーションしてあります。 現状ではメイフォームのIDとサブフォームのIDを を別々に手入力しています。 メインフォームのIDを入力したらサブフォームのIDが自動的に 同じ数値で表示されるような設定をするにはどのようにすれば よいのでしょうか。 また、新規データを入力する際に レコードセレクタにて空の入力欄を表示させて 前回のデータの入力を確定させているのですが これ以外の方法はありますでしょうか? この方法だと他の担当が操作した場合に いつデータ入力が完了したのか 次のデータを入力するにはどうすればよいのか 分かりづらいのではないかと思います。 上記2点どちらかでも構いませんので アドバイスお願いいたします。

  • ACCESS 基本的な構築(一側から他側のレコード指定)

    9月からACCESSを始めたばかりの者です。 意味不明な説明だったり言葉足らずの質問の場合はお許し下さい。 基本的な構築方法について質問があります。 現在、顧客&ペットの日記付き管理システムを構築しており、 分からない点が出来たのでアドバイスを頂ければと思います。 テーブル    T_顧客情報      T_生体情報      T_成長日記 リレーション  ★顧客ID  一対他   顧客ID       ★日記ID                        ★生体ID 一対他  生体ID 以上の関係でリレーションをしております。★が主キーです。 ※生体とはペット(犬)の事です。 ■業務の流れで生体情報を入力した後、顧客情報を入力することがあり 対策として、生体情報のフォームで顧客IDを検索するコントロールボタンを設置し、 顧客抽出などから顧客を選び最終的に【顧客IDを挿入】ボタンを押すことで 半自動?で顧客IDを生体情報フォームに流し込んでいます。 ■分からないのが『 T_生体情報 』と『 T_成長日記 』の場合で、 先ほどの同じ様に、【生体ID】を検索するコントロールボタンを設置 すれば済むことなんですが、 できれば生体情報フォームからコントロールボタン(日記フォームを開くボタン)の1クリックで 生体情報で開いているレコードの生体IDや生体の名前、性別などを成長日記フォームに 表示させたいのですが…。 できれば、その生体の所有者である顧客名も表示させたいと思います。  生体情報フォームで生体を検索(事前に飼い主の顧客名も入力済み)   ↓  成長日記フォームを開くボタンを押す   ↓  成長日記フォームが開き  生体情報の主キー(生体ID)、生体名、性別、品種など自動で表示  また飼い主の名前の名前も自動で表示   ↓  本日の日付入力、日記の入力 リレーションシップで『1対他』の他側を表示させる場合は 検索フォームなどを設置しないとダメなのでしょうか? また、上記の続きで、 特定の生体ID(犬)の日記だけを日付別にコントロールボタン等で 確認することは可能ですか? 宜しくお願い致します。

  • Access アクセスについて

    Accessでデータベースを作っています。 テーブル、クエリは下記のようになっており、リレーションシップで紐付けしてあります。 クエリからフォームを作成し、商品番号を入力することでマスタテーブルに登録されていれば自動で商品名等の情報が表示されるようになっています。(フォーム1) 商品番号を入力しカーソルが移動した時、マスタテーブルに該当する項目がなかった場合、マスタテーブルから作成した新規追加用のフォームが表示されるようになっています。(サブフォームではありません) 新規追加用フォームに商品名を入力し、閉じてもフォーム1の商品名の欄に反映されません。新規追加用フォームを閉じる時にVBAで”Requery”,”Refresh”もやってみましたがダメでした。商品番号を入力し直すと表示されます。 どうすれば自動で商品名が表示されるようになるか教えてください。 テーブル1(入力用) 1.ID(主キー) 2.商品番号 3.etc. テーブル2(マスタテーブル) 1.商品番号(主キー) 2.商品名 3.etc. クエリ 1.ID(テーブル1) 2.商品番号(テーブル1) 3.商品名(テーブル2) 4.etc.(テーブル2) 5.etc.(テーブル1)

  • Accessのリレーションのことについて

    すいません、お世話になります。 次のようなテーブルがあります。 テーブル 【営業所データ】 フィールド  営業所ID(キー)        営業所名        住所 デーブル 【社員データ】 フィールド  社員ID(キー)        営業所ID        社員名 デーブル 【社員写真】 フィールド  社員写真ID        社員ID        店舗ID        社員写真 【営業所データ】の営業所IDと【社員データ】の営業所IDがリレーションで、同じく 【社員データ】の社員IDと【社員写真】の社員IDがリレーションで結んであります。 【社員データ】を基にしたクエリがあり   社員ID   営業所ID   営業所名   社員名 となっているので、営業所名は営業所IDを入力することによって、フォームにおいては自動表示されます。 さて、次が質問になるのですが、 【社員写真】を基にしたクエリがあります。   社員写真ID   社員ID   社員名   営業所ID   営業所名   社員写真 社員IDを入力することで、フォームにおいては社員名・営業所IDが自動表示されるのですが、営業所名を表示することができないで困っています。 基本的な事項だとは思いますが、わからなくなってしまいました。よろしくお願いいたします。        

このQ&Aのポイント
  • プライベートホームページサービスでは、以前のマニュアルでは、index.shtmlとshtml拡張子を付与すると自動的にhttps化される事だったのですが、ユーザーCGIサポート終了あたりから、https化されなくなりました。
  • https化ができなくなる前のマニュアルでは、index.shtmlとshtml拡張子を付与することで自動的にhttps化されていましたが、最近ではその機能がなくなってしまいました。
  • プライベートホームページサービスで以前はindex.shtmlとshtml拡張子を付与すると自動的にhttps化されていましたが、ユーザーCGIサポート終了後、https化がされなくなりました。https化を行うためには別の方法を探す必要があります。
回答を見る

専門家に質問してみよう