-PR-
締切済み

access97でのデータ利用方法について

  • 困ってます
  • 質問No.90465
  • 閲覧数37
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 100% (1/1)

AテーブルのレコードとBテーブルのフィールドをリレーションさせる方法はあるのでしょうか
やろうとしている事は、Bテーブルの各フィールドにはそれぞれの商品数量があって、そのフィールド(商品名)の単価をAテーブルから参照させたいのですが
主キーがAテーブルでは、商品名に出来そうですが、Bテーブルは、商品名が
フィールドとなっているので
配列のような概念が利用できないかとも思ってマニュアル探してみましたが判りませんでした。それともデータベースの考え方が間違っているのでしょうか?
ご存知の方いらっしゃいましたら宜しくお願いします。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全1件)

  • 回答No.1
レベル13

ベストアンサー率 46% (643/1383)

レコードとフィールドのリレーション処理は、できないです。

えーと、も少しテーブルの構造やなさりたいことを、具体例をあげて書いていただくと、解決策が書きやすいんですが、
Aテーブル
 商品ID
 商品名
 単価
Bテーブル
 商品ID1
 商品数量1
 商品ID2
 商品数量2
   :
のようになっていて、単価×数量で、商品1,商品2…の売上金額を求めたい。ってことなんでしょうか?

もしそうであれば、根っこの部分の問題として、テーブルの構造に難があるとことになります。

Bテーブルを
 伝票ID
 商品ID
 数量
ってな構成にして、伝票一つに付き複数レコード生成するようにする、ってのが根本的な解決になると思います。

データベースの大規模な改造を伴わずに解決するとすれば、DLookup()関数を使えば良いでしょうね。
クエリ中に、
DLookup("単価","Aテーブル","[商品ID]=" & [商品ID1])
と書けば、[商品ID1]フィールドの商品の単価を取得することが出来ます。
DLookup("単価","Aテーブル","[商品ID]=" & [商品ID1]) * [商品数量1]
で、売上金額が計算できます。

テーブル構造を修正する方式に比して、DLookup()の方は速度的には大幅に劣ります。が、修正の手間はこっちの方が遥かに簡単です。取り扱うデータ量が少ない(せいぜい数万件程度)んであれば、後者の方法で十分だと思います。

なんかあったら、補足をお願いします。
お礼コメント
mehiro

お礼率 100% (1/1)

ありがとうございました。accessは初心者なので大変勉強になりました。
ご理解頂いている通りの内容です。質問内容が具体的でなくて申し訳ございませんでした。ホームページからcgiでサーバーに蓄積されたcsv形式データをダウンロードしてaccessで整理しようと考えていました。
投稿日時 - 2001-06-15 05:57:17


このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ