![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?a65a0e2)
アクセス初心者ですが、フォームを作成時、疑問に思って考えるほど混乱してしまいました。
例えば、
Aテーブル:日付、店コード、売上のフィールドを作る。(主キーなし)
Bテーブル:店コード、店名(主キーは店コード)
リレーションは店コード(B)→店コード(A)に結び、すべての整合性にチェック
それぞれのテーブルに、数件のデータを入力
この状態で入力フォームをウィザードで作ったのです。
Aテーブルからすべてのフィールド、Bテーブルから生徒氏名を選び、ウィザード任せにフォームを作りました。
このとき、できたフォームで出席番号を入れると何もしないのに、自動的に生徒氏名が入ってしまいます。
人に聞くと当たり前でしょ、みたいに言われたのですが、なんとなくわかるようでわかりません。どうして自動的に入るのでしょうか?ふりがなの自動入力みたいな設定をしたというのならわかるのですが、何もしてないのに。
すみません、自分でも、リレーションとか整合性とかについて、あるいはまだフォームとテーブルの関係について、よくわかってないせいなのだろうとは思うのですが、そこの所も合わせ、どなたか、分かりやすく教えていただけますか?宜しくお願いします。
No.3ベストアンサー
- 回答日時:
>フォームで店コードを入れると何もしないのに、自動的に店名が入ってしまいます
Aテーブルの店コードとBテーブルの店コードをリレーションで結合してあるからです。
フォームには日付・店コード・店名・売上のコントロール(テキストボックス)が作られていますよね。
フォームの店コードにコードを入力するとその値でAテーブルの店コードにリレーション(この場合、結合というより連結と言ったほうが分かりやすいと思いますが)されたBテーブルの店コードが同じ値のレコード(データ)の店名が表示されているということです。
そのフォームをデザインビューで開きフォームのプロパティのデータにあるレコードソースの右にある...のボタンをクリックするとクエリビルダのダイアログが開きますので[はい]をクリックしてみてください。SQLスタートメントが表示されAテーブルとBテーブルが表示されていてAB各テーブルの店コード同士が結合線でつながっている状態が見れます。AとBテーブルの店コード同士がつながっているのでAテーブルに入力された店コードと同じ店コードのBテーブルにある店名が表示されるというのがビジュアル的に見れます。
お礼が遅くなりすみません。丁寧な説明、ありがとうございました。
なるほど、リレーションを結ばずに作ろうとしたら、できませんでした。結合というより、連結、そう捉えると、わかりやすいですね。
No.4
- 回答日時:
フォームはデータを表示する機能を持っています。
データが表示されるのは当然です。
そのフォームの「レコードソース」プロパティを確認しましょう。
おそらく、Select ~ というSQL文が記述されていると思います。
これはフォームの基になるテーブル/クエリを表わしています。
クエリビルダを起動し、実行ボタンをクリックしデータシートを
表示してみましょう。新規レコードの店コードを入力すると自動的に
店名が表示されるはずです。
この参照機能は、フォームではなく、リレーションシップを利用した
クエリの機能です。フォームはクエリのデータを表示するだけなのです。
クエリはデータを表示する機能を持っています。リレーションシップが
設定されていれば、一側テーブルのフィールドの値を自動的に表示する
ことが出来ます。
説明が難しいのですが、お分かりいただけたでしょうか?
御礼が遅くなり申しわけありませんでした。詳しい説明をありがとうございます。
『フォームはデータを表示する機能を持っています。』なるほど、それをどこか感覚的に、入力をするためのもの、という捉え方をしてしまってました。
ただ、『フォームではなく、クエリの機能…』以下、確かに今の自分にはちょっと難しいです。でもじっくり考えたいです。アクセスをもっとやりたいという気になりました。ありがとうございます。
No.2
- 回答日時:
プログラミング経験なし、ですか・・・。
まず、今A,Bテーブルを結合した結果を表示している、という事は無関係なので説明を除外します。
(リレーションとか整合性とかで悩まれているようですが、「自動的に店名が出るのは何故?」という質問には無関係です。)
Cテーブル:店コード、店名、日付、売上(主キーは店コード)というテーブルが存在するとします。
このテーブルに対してフォームを作ると、そのフォームはCテーブル専用のフォームになるので、常にCテーブルの内容を表示します。(ACCESSのフォームは、実は裏でテーブルを抱え持っていると理解して下さい。)
ですので、多分フォームの最下部には左右の矢印および新規レコードを挿入する為の”*”が付いたボタンがあり、レコード番号を示す数字が表示されていると思います。
このフォームは常にCテーブル内の何れかのレコードを表示しますので、主キーである店コードを指定すると、その指定された店コードを持つレコードを表示するよう、作用するのです。ですので、そのレコードで保持している店名が自動的に表示されます。
という説明で如何でしょうか?ピンと来ますか?
父が倒れてしまい、お礼が遅くなりすみません。
裏でテーブルを持っている、という考え方、「なるほど!」です。この裏テーブルこそ、リレーションを結んだテーブルをひとつのテーブルとしてアクセスが作ってくれた裏テーブル=実際自分ではファイル名をつけて保存していないテーブルということなんですね?そのテーブルを表示するだけだから、自動的に店名も入る、ということです、よね?
もし違ってたらごめんなさい、まだまだ修業が足りなくて。
No.1
- 回答日時:
生徒氏名?出席番号?
上記説明のA,Bのテーブルにはそういうフィールドはないのですが。
もう一度質問を整理して下さい。
あと、ACCESSは初心者との事ですが、他の言語のプログラミング経験はありますか?それによって回答の仕方が変わりそうです。
この回答への補足
わ、どんでもないすっとこどっこいをば失礼しました、すみません!ああ、ご指摘ありがとうございます。
生徒氏名→店名、出席番号→店コードの誤りです。
つまりは、
「Aテーブルからすべてのフィールド、Bテーブルから店名を選び、ウィザード任せにフォームを作りました。
このとき、できたフォームで店コードを入れると何もしないのに、自動的に店名が入ってしまいます。」ということなんです。
こんな私ですが、どうぞ宜しくお願いします。なお、プログラミング経験は、なしです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルに主キーを作らないデ...
-
accessのレポートであとから他...
-
Accessを使って日付を比較したい
-
Access 複数フィールドの一致
-
アクセスにエクセルのデータを...
-
Accessの入力フォームから、テ...
-
accessで、「集計のオプション...
-
Accessフォームでデータ入力で...
-
Access2010 携帯番号にハイホン...
-
Access クエリの更新結果をテ...
-
数値型にしたい
-
アクセスのフォームを開くとき...
-
Accessで、指定した区間のシリ...
-
ACCESS クエリで重複データを最...
-
ACCESSでクエリを作成したら「...
-
アクセスのフォームのビューが...
-
ACCESSのフォームからデータの...
-
Accessのフォーム上にレコード...
-
accessの自動更新処理をできな...
-
Access 別フォームへの再クエ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルに主キーを作らないデ...
-
accessのレポートであとから他...
-
Accessを使って日付を比較したい
-
Access 複数フィールドの一致
-
accessで、「集計のオプション...
-
アクセスにエクセルのデータを...
-
Accessの入力フォームから、テ...
-
Access2010 携帯番号にハイホン...
-
Accessで検索を高速化
-
Accessフォームでデータ入力で...
-
アクセスのフォームを開くとき...
-
ACCESS Yes/No型の集計
-
MS-Accessのレコード内のフィー...
-
Accessクエリのデータ表示件数...
-
Access クエリの更新結果をテ...
-
Accessのクエリによる集計が出...
-
アクセスの重複クエリ
-
Accessの「式で型が一致しませ...
-
テーブル作成クエリとデータベ...
-
ACCESSで行番号はつけられないの?
おすすめ情報