アクセス初心者ですが、フォームを作成時、疑問に思って考えるほど混乱してしまいました。
例えば、
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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルに主キーを作らないデ...
-
Access 複数フィールドの一致
-
accessのレポートであとから他...
-
Accessを使って日付を比較したい
-
accessで、「集計のオプション...
-
アクセスにエクセルのデータを...
-
Access 2010 土日祝日を除いて...
-
Accessの入力フォームから、テ...
-
オートナンバー型を1から始める...
-
accessで過去に入力したデータ...
-
アクセスのフォームを開くとき...
-
ACCESS クエリで重複データを最...
-
ACCESSでクエリを作成したら「...
-
Accessでグループ化した結果フ...
-
選択したチェックボックスのみ...
-
アクセスのフォームのビューが...
-
ACCESSのフォームからデータの...
-
ACCESSで2つのテーブルの合計値...
-
他フォームのチェックボックス...
-
ACCESS クエリで、グループ化...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルに主キーを作らないデ...
-
accessのレポートであとから他...
-
アクセスにエクセルのデータを...
-
Accessを使って日付を比較したい
-
accessで、「集計のオプション...
-
Access 複数フィールドの一致
-
Access2010 携帯番号にハイホン...
-
ACCESS Yes/No型の集計
-
Accessで検索を高速化
-
Accessの入力フォームから、テ...
-
Access 2010 土日祝日を除いて...
-
Accessフォームでデータ入力で...
-
アクセスの重複クエリ
-
アクセスのフォームを開くとき...
-
MS-Accessのレコード内のフィー...
-
Accessのクエリによる集計が出...
-
Access クエリの更新結果をテ...
-
ACCESSのクエリの値を変換する...
-
accessのテーブルについて教え...
-
accessで過去に入力したデータ...
おすすめ情報