こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ACCESS クエリの連結?

質問タイトルが「クエリの連結」としましたがこのタイトルが適正ではないかもしれませんがよろしくお願いします。

現在ネットショップの在庫管理や、注文後の発送情報等をACCESSで管理しております。
少しずつ販売数も増え、販売先のプラットフォームも自社ECサイトだけでなく複数のショッピングモールで販売をするようになり、当初作ったACCESSでの管理システムでは構造的に無理が出てきたため新しいシステムを構築しているところです。

テーブル構成やフィールド構成など複雑ですので、今回の質問に必要かなと思われる部分を抜き出して質問させていただきます。また、説明がうまくできず伝わりにくい部分がありましたらご指摘ください。

◆t出品基本情報
・出品基本情報ID
・ベース商材名(Tシャツ、キャップなど)


◆t出品
・出品ID
・出品基本情報(t出品基本情報→t出品)
・出品先ID(出品先MSTからルックアップ)
・出品タイトル
・出品状態(出品状態MSTからルックアップ、出品中、出品可など)
・出品価格


◆t出品詳細
・出品詳細ID
・出品ID(t出品→t出品詳細)
・商材ID(t商材MSTルックアップ)
・構成数量(複数商品のセット販売などに対応するため、鉛筆10本など)
・仕入価格


というような構成です。
イメージとしては以下のような関係です。
例えば同じ鉛筆(t出品基本情報)でも出品先Aは10本セット、出品先Bは15本セット等に対応する多面にこのような感じのテーブル構成になってしまいました。もちろん販売手数料などの違いなどから出品価格もt出品ごとに違います。

◆t出品基本情報
┣◆t出品(出品先A)
┃┗◆t出品詳細
┣◆t出品(出品先B)
┃┗◆t出品詳細
┣◆t出品(出品先C)
┃┗◆t出品詳細

今回質問させていただくのはここからで、現在販売中のリスト等をフォーム等に表示する場合ですが、何も考えずに普通に上記の構成をリストすると

|出品基本情報ID|出品ID|出品先|出品名|出品価格|構成数量|出品状態|
|1|1|出品先A|鉛筆10本セット|450円|10|出品中|
|1|2|出品先B|鉛筆5本セット|200円|5|出品中|
|2|3|出品先A|消しゴム1個|100円|1|出品中|
|2|4|出品先B|消しゴム2個|200円|2|出品中|
|2|5|出品先C|消しゴム10個|900円|10|在庫切れ|
|3|6|出品先A|Tシャツ-レッド|1450円|1|出品中|

このような表示になると思います。
しかし残り在庫との比較等視認性が悪いため以下のようなフォーム内での表示に変更したいです。

|出品基本情報ID|ベース商材名|出品先A構成数量|出品先A出品状態|出品先B構成数量|出品先B出品状態|出品先C構成数量|出品先C出品状態|残り在庫|

以下のように試してみましたがいろんなクエリのパターンを試しても最後に必ずカレントレコードがありませんと表示されてしまいます。

◆q出品先A( 出品IDでリレーション、t出品→t出品詳細)(B,Cも同様)
・出品ID(t出品)
・出品基本ID(t出品)
・出品先(t出品)(出品先Aでフィルター)
・出品状態(t出品)
・構成数量(t出品詳細)

◆q出品リスト
・出品基本ID(t出品基本情報)
・ベース商材名(t出品基本情報)
・出品状態(AS 出品状態A店)(q出品先A)
・構成数量(AS 構成数量A店)(q出品先A)
・出品状態(AS 出品状態B店)(q出品先B)
・構成数量(AS 構成数量B店)(q出品先B)
・出品状態(AS 出品状態C店)(q出品先C)
・構成数量(AS 構成数量C店)(q出品先C)
・残り在庫(別途t入庫、t出庫テーブルをもとにクエリで計算したもの)

上記のようにサブクエリを作って連結してみたのですが、とりあえずは表示はできても、ABC店ともに同じテーブルを参照してフィルターをかけているだけなので、同じ基本情報IDが重複して並んでしまったりしたため、いろいろなところで集計で先頭にしたりすると、カレントレコードがありませんとなってしまう感じです。

このようなケースでは出品先A、B、Cとテーブルを分けずに対処する方法はございますでしょうか。

ちょっと質問、説明がうまくできていないとは思いますがよろしくお願いいたします。

投稿日時 - 2017-04-10 22:42:28

QNo.9316067

すぐに回答ほしいです

質問者が選んだベストアンサー

【訂正】

【出品基本台帳】

出品先_ID・・・・・・・[出品先]主キー
品種別台帳_ID・・・・・[品種別台帳]主キー

先月期首在庫・・・・・・・先々月末在庫数
先月売上数・・・・・・・・先月売上数
先月出品数・・・・・・・・先月出品数
先月調節数・・・・・・・・先月調節数
当月期首在庫・・・・・・・先月末在庫数
当月売上数・・・・・・・・当月売上数
当月出品数・・・・・・・・当月出品数
当月調節数・・・・・・・・当月調節数
当月月現在庫・・・・・・・当月現在庫

テーブル[出品基本台帳]は、普通はこのよう。先のように複合キー+主キーというのは私の流儀。よって、チト訂正しておきます。

投稿日時 - 2017-04-11 11:50:51

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

補足:アドバイスは無理!


1、マスターテーブル

【商品基本台帳】・・・・商品管理テーブル
【品種別台帳】・・・・・商品枝番管理テーブル

【仕入先】・・・・・・・仕入先
【出品先】・・・・・・・出品先

2、出品関連テーブル

【出品基本台帳】・・・・出品商品在庫管理テーブル
【出品伝票】・・・・・・出品情報
【返品伝票】・・・・・・返品情報
【売上伝票】・・・・・・売上情報
【管理伝票】・・・・・・在庫管理情報(廃棄等)

商品マスターは、基本情報と枝番情報の主従関係を持つテーブルで管理。その場合、単位情報、仕入単価等の管理は枝番を管理するテーブルの役目。そして、出品情報は、枝番単位で管理されなければならない。この辺りまでは、私と同じ考え。私が作成した仕組みと同じ。さて、問題は、その先。

まず、【出品基本台帳】だが、これは《現在販売中のリスト等を表示することを大前提に設計》されているはず。だから、普通は、ちゃっちゃっと表示するだけ。なのに、それが出来ないってのはどういうことなのか?

【出品基本台帳】

ID・・・・・・・・・・・台帳主キー
品種別台帳_ID・・・・・[品種別台帳]主キー
出品先_ID・・・・・・・[出品先]主キー
先月期首在庫・・・・・・・先々月末在庫数
先月売上数・・・・・・・・先月売上数
先月出品数・・・・・・・・先月出品数
先月調節数・・・・・・・・先月調節数
当月期首在庫・・・・・・・先月末在庫数
当月売上数・・・・・・・・当月売上数
当月出品数・・・・・・・・当月出品数
当月調節数・・・・・・・・当月調節数
当月月現在庫・・・・・・・当月現在庫

要は、このテーブルを表示させるだけ。なのに、それが出来ないってのはどういうことなのか?そこんところは、開発者が突き止めなきゃー。と、思うが・・・。

投稿日時 - 2017-04-11 11:32:22

ANo.1

Q、対処する方法はございますでしょうか?
A、あるのでは・・・

質問文は1分ほど眺めただけでの回答ですが・・・

解決策=クエリを元にデータを表示するのを断念する。

【追加】◆t出品基本情報の設計は見直すべきなのでは・・・

なんかEXCEL的発想を感じますね。ちょっとAccess的なテーブル設計ではないのでは・・・

投稿日時 - 2017-04-10 23:14:51

補足

ご意見ありがとうございます。
もともと、販売先が1つで運用していたシステムをもとに複数の販売先に対応させていった結果このような感じになってます。

テーブル構成も含め少し見つめなおしてみます。
>A、あるのでは・・・
>ちょっとAccess的なテーブル設計ではないのでは・・・

このあたり、少しアドバイスいただければ助かります。

投稿日時 - 2017-04-10 23:21:28