これ何て呼びますか Part2

accessで顧客管理から受注管理までの仕組みを作成しています。
質問事項

顧客マスタ
顧客ID 氏名 一般/業者(yes/no型)
商品マスタ
商品名 商品ID 一般価格 業者価格
受注テーブル
顧客ID 商品名 商品ID 数量
というテーブルを作成しており、クエリで 商品名*価格としたい場合に顧客マスタの一般/業者(yes/no型)のチェックで一般価格か業者価格を判断して価格に反映させたい場合の設定はどのようにすればよいでしょうか?


どなたかご教示お願い致します。

質問者からの補足コメント

  • ご回答ありがとうございます。
    これはIIF関数とDlookup関数を併用しないといけないのでしょうか?
    excelのイメージですと IF(”一般/業者”=TRUE,vlookup(一般単価,2,FALSE),vlookup(業者単価,2,FALSE)
    雑に書きましたが、関数のイメージですとこのように価格の参照先をyes/no型で区別をしたいのですが、accessの関数にいまいち理解ができておらず、上記だけでは理解ができなかったので追加質問させていただきました

    No.1の回答に寄せられた補足コメントです。 補足日時:2022/06/12 23:23
  • その場合はIIF関数はどのような記載になるのでしょうか?抽出条件に2項目入れるやり方があまりわからないため教えていただければ幸いです。

    No.2の回答に寄せられた補足コメントです。 補足日時:2022/06/12 23:49
  • ありがとうございます。
    たびたびの質問で申し訳ないのですが、
    単価: IIf([T-顧客データベース].[業者]=False,[M-商品マスタ].[一般価格]*[数量],[M-商品マスタ].[業者価格]*[数量])
    実際のテーブル名で置き換えたのですが、一般価格と業者価格のパラメータを求められるようになってしまいました。式のどこに問題があるのでしょうか?

    No.3の回答に寄せられた補足コメントです。 補足日時:2022/06/13 00:16
  • このような形でリレーションシップはつないでいるのですが、もう少し設定しないといけないでしょう?

    「accessでの請求管理について」の補足画像4
    No.4の回答に寄せられた補足コメントです。 補足日時:2022/06/13 00:24
  • 商品名は商品IDに直しましたが、パラメータで値が要求されるのが治らないです。

    先程の件で商品名でのリレーションシップでは結果に影響が出るのでしょうか?入力の際はクエリを使用すればIDで問題ないのですが、視認性で商品名のほうがわかりやすい気もします、、、、


    請求管理では請求書の発行ごとのIDを管理しています。一回の請求に送付先が複数になるため
    受注IDを送付先ごとに生成していく受注明細IDを商品の注文ごとに管理してくというような方法を検討しています。初心者のため一度の処理でうまくいく方法が思いつかないため段階ごとの処理で設定しました。

      補足日時:2022/06/13 00:36
  • たしかにそうですね
    価格: IIf([T-顧客データベース].[業者],[M-商品マスタ].[業者価格],[M-商品マスタ].[一般価格])
    式を訂正しました。ただ合計金額は別の行で表示させるため数量との掛け算は削除しました。
    ですが、パラメータの表示だけが解決せずなかなか難しいですね

    No.8の回答に寄せられた補足コメントです。 補足日時:2022/06/13 00:54
  • このようにパラメータになるのですが、式の入力方法に問題がありますか?[]の中を表示されて島しまいます

    「accessでの請求管理について」の補足画像7
      補足日時:2022/06/13 01:23
  • すいません言っている意味が分かりました。
    式を直したらクエリを反映させたら何も結果が返ってきませんでした。
    原因としては何が考えられますか?

    No.10の回答に寄せられた補足コメントです。 補足日時:2022/06/13 01:43
  • いけました!
    SQLの項目がおかしくなっていました。
    無事同じ商品名でも価格を使い分けることができました!
    長時間の対応ありがとうございました。

    またこれをフォームにする場合の質問を明日にでもさせていただきます。もしよければご対応いただけますと嬉しいです

    No.12の回答に寄せられた補足コメントです。 補足日時:2022/06/13 02:03

A 回答 (12件中1~10件)

結合の線が間違っている可能性もあります。


SQLを表示して、正しい項目で結合しているか、ご確認ください。
(結合の線をダブルクリックしても、確認できます)
この回答への補足あり
    • good
    • 0

それぞれのテーブルのレコードに登録されている、結合項目(商品ID、顧客ID)の値が合っていないのではないかと思います。

    • good
    • 0

先程の式に直してください。


商品マスタの項目名は「一般単価」「業者単価」です。
この回答への補足あり
    • good
    • 0

これでいかがでしょうか。

「価格」を「単価」に修正しました。
単価: IIf([T-顧客データベース].[業者],[M-商品マスタ].[業者単価],[M-商品マスタ].[一般単価])
    • good
    • 0

この式の「価格」を「単価」に修正してください。


あと、式の結果は単価ではなく価格ですね。
この回答への補足あり
    • good
    • 0

あと、請求管理表は何を管理しているのでしょうか?

    • good
    • 0

受注明細表に商品IDが必要です。

商品名は不要です。
    • good
    • 0

あと、IIF文でFALSEを条件にするとわかりにくいので、以下のように書くと良いです。


単価: IIf([T-顧客データベース].[業者],[M-商品マスタ].[業者価格]*[数量],[M-商品マスタ].[一般価格]*[数量])
    • good
    • 0

テーブルの結合はしましたか?


こちらの①のようなイメージです。
https://www.sk-access.com/syo_query/sqa004_senta …
この回答への補足あり
    • good
    • 0

こんな感じですね。


実際に動かしていないので、多少書き方が異なるかもしれません。
IIf([顧客].[一般/業者], [商品].[一般価格]*[受注].[数量], [商品].[業者価格]*[受注].[数量])
https://officek.net/access/a-function/al-others/ …
この回答への補足あり
    • good
    • 0

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


おすすめ情報