AテーブルのレコードとBテーブルのフィールドをリレーションさせる方法はあるのでしょうか
やろうとしている事は、Bテーブルの各フィールドにはそれぞれの商品数量があって、そのフィールド(商品名)の単価をAテーブルから参照させたいのですが
主キーがAテーブルでは、商品名に出来そうですが、Bテーブルは、商品名が
フィールドとなっているので
配列のような概念が利用できないかとも思ってマニュアル探してみましたが判りませんでした。それともデータベースの考え方が間違っているのでしょうか?
ご存知の方いらっしゃいましたら宜しくお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
レコードとフィールドのリレーション処理は、できないです。
えーと、も少しテーブルの構造やなさりたいことを、具体例をあげて書いていただくと、解決策が書きやすいんですが、
Aテーブル
商品ID
商品名
単価
Bテーブル
商品ID1
商品数量1
商品ID2
商品数量2
:
のようになっていて、単価×数量で、商品1,商品2…の売上金額を求めたい。ってことなんでしょうか?
もしそうであれば、根っこの部分の問題として、テーブルの構造に難があるとことになります。
Bテーブルを
伝票ID
商品ID
数量
ってな構成にして、伝票一つに付き複数レコード生成するようにする、ってのが根本的な解決になると思います。
データベースの大規模な改造を伴わずに解決するとすれば、DLookup()関数を使えば良いでしょうね。
クエリ中に、
DLookup("単価","Aテーブル","[商品ID]=" & [商品ID1])
と書けば、[商品ID1]フィールドの商品の単価を取得することが出来ます。
DLookup("単価","Aテーブル","[商品ID]=" & [商品ID1]) * [商品数量1]
で、売上金額が計算できます。
テーブル構造を修正する方式に比して、DLookup()の方は速度的には大幅に劣ります。が、修正の手間はこっちの方が遥かに簡単です。取り扱うデータ量が少ない(せいぜい数万件程度)んであれば、後者の方法で十分だと思います。
なんかあったら、補足をお願いします。
ありがとうございました。accessは初心者なので大変勉強になりました。
ご理解頂いている通りの内容です。質問内容が具体的でなくて申し訳ございませんでした。ホームページからcgiでサーバーに蓄積されたcsv形式データをダウンロードしてaccessで整理しようと考えていました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) IT用語について質問です。 以前ITパスポートの試験を受けた際にデータベースが何の集まりかについての 2 2022/12/10 12:29
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
Accessでvlookupみたいなことは...
-
ツリー構造をRDBで表現するには?
-
SQLで日付を条件に削除したい
-
Accessクエリでの、LIKE条件
-
ACCESSに同時アクセス(編集)を...
-
SQLで条件指定結合をしたいがNU...
-
ACCESSで指定されたテーブルか...
-
3つの表を1つに縦に連結する
-
Accessでテーブルにパスワード...
-
Accessレコードの追加や変更が...
-
ACCESS DB起動時パスワードを...
-
デザインビューで、連結式 を...
-
ACCESS 売上管理 価格改定につ...
-
Accessデータベースで測定デー...
-
SQL: SELECT UNIONすると文字数...
-
accessで指定期間の曜日カウン...
-
Accessでテーブルをデータシー...
-
パススルークエリをテーブル作...
-
ODBCで接続するとDBに変更/追加...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
access テーブル内のレコード...
-
SQLで日付を条件に削除したい
-
Accessでvlookupみたいなことは...
-
ACCESSで指定されたテーブルか...
-
Accessレコードの追加や変更が...
-
Accessでテーブルからテーブル...
-
Accessクエリでの、LIKE条件
-
ACCESSに同時アクセス(編集)を...
-
3つの表を1つに縦に連結する
-
ツリー構造をRDBで表現するには?
-
SQLで条件指定結合をしたいがNU...
-
2つのテーブルを比較して一致し...
-
Accessの追加クエリで既存のテ...
-
リンクテーブルを CopyObject ...
-
デザインビューで、連結式 を...
-
ODBCで接続するとDBに変更/追加...
-
Accessで、複数のテーブルで随...
-
時間の足し算
-
翌営業日までの日数をSQLで求め...
おすすめ情報