- ベストアンサー
Access操作について
クエリにレコードの追加をしたいのですが、テーブルと1対多のリレーションの設定がされているため、クエリにレコードを追加できません。 そこでお聞きしたいのですが、(1)クエリにレコードを追加する方法を教えて下さい。(2)そもそも、クエリからデータを追加する必要性は、一般的にあるのか。(最近、勉強をはじめたからなのですが、)レコードを追加することは通常テーブルからのみすることなのですか。それとも、テーブルとクエリ双方からレコード(データ)を追加できるようにした方がいいのですか? 別の質問ですが、クエリ等を開いて、それを閉じるときには、やっぱり右上にある、×印をクリックするほかに方法は無いのですか。やや、エクセルなどと比べると、マウスポインタを右上まで持っていくことが面倒なのですが。しょうがないのでしょうか? 宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
1対多であるために1側の内容を複数のレコードが参照しています。よってクエリー上では追加できません。 追加となると個々のテーブルに追加するしかありませんね。 通常レコードを追加したりオペレーションを行うときはヒューマンインターフェースとしてフォームを使用するのが一般的です。テーブルはデータをため込む場所です。クエリはデータを取り出したり、追加したり、削除したりというデータ操作です。出力インターフェースとしてはレポートを使用するわけです。 フォームを使えば入力支援、入力チェック等ができます。 クエリやテーブルを閉じるときはX印ですが、入力フォームを作成すればそのフォームを閉じるボタン等は自由に配置できます。細かな動きをさせるには、そのフォームに配置したボタンなどでマクロを呼ぶかVBAのコードを呼ぶことになります。
その他の回答 (2)
1対多でも追加修正できるはずです。 ちょっと「便利」なフォームはクエリーを元に入力画面を作っていますよ。 単純な商品マスタなどは、テーブルで十分でしょうが、 売上伝票などは、商品CD、得意先CDなどだけ指定して、入力の手間を省きましょう。 また、商品マスタ、得意先マスタの内容は重要なので、売上伝票入力時に「ついでに」入力するのはおすすめしません。間違って直してしまう場合があります。 売上テーブルに伝票日付と商品CDを指定すると、商品テーブルの商品名を表示するクエリーを例にします。 一番考えられる誤りは、テーブルに一意となっている主キーがないのでは? 商品テーブルには商品CDが主キーになっている必要があります。 商品テーブルと売上テーブルの商品CDは同じ属性(テキスト、数値型)にしてください。 商品テーブルと売上テーブルは商品CDでつながるように指定してください。(1対多) SELECT 売上テーブル.伝票日付, 売上テーブル.商品CD, 商品テーブル.商品名 FROM 商品テーブル INNER JOIN 売上テーブル ON 商品テーブル.商品CD = 売上テーブル.商品CD; おわかりいただけますでしょうか。 別の質問の答えは×しかありません。 アクセスのテーブルやクエリーは「デザインするため」にあり、 使いやすく便利にするためにフォームを作ります。
- whitemark
- ベストアンサー率24% (11/45)
僕も初心者なのでアドバイスらしいことも出来ませんが、クエリで入力が出来ないと言うことは、そのクエリ上の整合性がとれていない証拠なのではないでしょうか? またクエリから入力する必要性ですが、一般的には必要性は無いのかもしれませんが、フォームなどのレコードソースになっているクエリで、そのフォームをもっと見易く、分かりやすくしたい なんて設計にするならクエリでないと行けない…っと言う場合もあると思います。 基本的と言う観点で言えば、やっぱりテーブルじゃないですかねー? 僕も作っていて思うのですが、データベースって思っている以上に整合性が重要なようです。 とても細かい部分までチェック入れないといけないので、ほんと難しいですよね… お互い頑張りましょうね~(^-^)/ って言うか、ほんとアドバイスなってなくてゴメンナサイm(__)m
お礼
ありがとうございます。十分ためになりました。 私も整合性やリレーションのつながりは大事みたいですね、それが難しくて難しくて(笑)、大変です。頭が混乱してしまいますよね。 それに、今は練習で小売店の売上管理みたいなものをしているんですが、クエリにデータを加える事で、顧客情報を足すのがいいのか、テーブルにやっぱり足す方がいいのかをかなり考えましたね。whitemarkさんがいうように、基本はテーブルにレコードを追加するのでしょうね。ケースバイケースなのかもしれませんけど。 それにしても、エクセルやワードと比べると、奥が深いですね。 リレーションシップなどが分かれば、あとは結構暗記が多いみたいなので、ここが山場だとおもって頑張ろうと思ってます。 お互い頑張りましょう!!!!