海外旅行から帰ってきたら、まず何を食べる?

Access2007を独学で勉強中です。とっても基本的なことだと思いますが教えてください。

テーブル「売上台帳」には「売上No.」「売上日」「商品CD」「数量」があります。
テーブル「商品台帳」には「商品CD」「商品名」「単価」があります。

この二つをクエリを使って1つの表として扱えるようにしたいのですが、テキストをみると「商品CD」はテーブル「売上台帳」から取るようになっています。なぜテーブル「商品台帳」の「商品CD」を使わないのでしょうか???

因みに、どちらから「商品CD」をとっても、クエリのデータシートビューで確認すると同じ結果になりました。

なお、リレーションシップと参照整合性の設定は行っています。

クエリを作成する上で重要なことのように思えましたので、質問させていただきました。
よろしくお願いいたします。

A 回答 (2件)

リレーションシップとクエリの詳しい説明が無いので


一般的?な事を推測のもとに。
売上台帳は日々の売り上げで毎日更新されますね。
一方商品台帳は必要になった時だけですので一か月間更新なしの場合もあり得ます。
商品台帳はマスタテーブル、売上台帳はトランザクションテーブルといって良いと思います。
さて、
リレーションシップの設定を行っているので
売上台帳の商品CDは必ず商品台帳の商品CDに含まれます。
しかし、売り上げのない商品CDは当然売上台帳の商品CDにはありません。

>どちらから「商品CD」をとっても、クエリのデータシートビューで確認すると同じ結果になりました
なのでクエリの結合が、両方のテーブルの結合フィールドが同じ・・・になっていると推測。
1---∞
この場合はどちらの商品CDにしても結果は同じです。
結合の種類を変えて、商品台帳1--→∞売上台帳
にして色々試してみてください。
何を求めたいのか・・でクエリも変える必要が有ります。
ここをご覧になってベン図で求めたい範囲が何かを考えてみてください。
http://www.sk-access.com/Syo_Query/SqA011_Proper …

ちょっと蛇足かもしれませんが、現実には商品台帳にはまだ無いけど売上台帳に入力だけ先にしたい・・
などのケースが発生します。
その場合にはリレーションシップを張っていると出来ませんのでリレーションを削除して
入力作業に専念して後からマスタテーブルである商品台帳に登録することもあります。
    • good
    • 0
この回答へのお礼

さっそくのご回答、ありがとうございます。

なぜかログインができなくなってしまい、お礼が遅くなりました。

質問の内容も簡単に書きすぎていたようで、申し訳ございません。

その後、いろいろ試していたところ、売上台帳の商品CDをクエリで使わないと、クエリを使ってフォームを作成した場合、新規の登録ができないことに気がつきました!

「見るだけならどちらでもOK、入力があるならデータを書き込みたいテーブルから取る必要がある」ということですね。

お礼日時:2012/06/26 14:03

なぜテーブル「商品台帳」の「商品CD」を使わないのでしょうか???



因みに、どちらから「商品CD」をとっても、クエリのデータシートビューで確認すると同じ結果になりました。>>
vszk
一つのテーブルに「売上台帳」の「商品CD」と「商品台帳」の「商品CD」の二つの「商品CD」という同じものを並べるのはむだだからです。どちらか一つのせれば十分です。
    • good
    • 0
この回答へのお礼

ログインができなくなってしまい、お礼がおそくなって申し訳ありません。

2つある商品CDのうちどちらを取ればよいのかが、よくわかりませんでした。

いろいろ触っていると、どちらから取っても表示はできるが、売上台帳から取らないと新規の入力ができないことが分かりました。

ご回答くださり、ありがとうございました。

お礼日時:2012/06/26 14:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報