次の方法で共有

DSumで合計の条件を二つ設定したい

Anonymous
2021-05-08T08:28:24+00:00

Access2019

Win10

基本的な質問で、申し訳ありませんが、どのようにしても出来ませんでしたのでご教示お願いいたします。

メインレポートとサブレポートがあって、サブレポートの計算合計をメインレポートに表示するようにしています。

=DSum("(細単価*細数)","細項目","見積ID =" & [Reports]![見積細項目単価入り]![見積ID])

この中で[細単価]*[細数] がサブレポートの計算となっています。

[項目]という名前のフィールドには、「交通費」とか「宿泊代」とか入力するようにしていますが、フィールドに「現地清算の費用」と入力されたら、その小合計は表示はするけど、全体の金額には含めないようにしたいのです。

しかし、コントロールへの入力が複雑そうだった為、

一度、「現地清算の費用」のみ取り出して、その費用を全体の費用から差引するほうが簡単だと考え

=DSum("([細単価]*[細数])","細項目","[項目ID]=" & [Reports]![見積細項目単価入り].[Report]![細項目]![項目ID] And "[項目='[現地清算の費用]'")

とか

=DSum("(細単価*細数)","細項目","[項目]='[現地清算の費用]'" And [見積ID]=[Reports]![見積細項目単価入り]![見積ID])

とかやってみましたが、うまく出来ませんでした。

お判りの方がいらっしゃいましたら、ご教示方よろしくお願い致します。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2021-05-10T09:22:56+00:00

> ん~....何も表示されないんですが....?

・テーブル[細項目]に 1 件もレコードが格納されていない。

・テーブル[細項目]に格納されているレコードのうち、
 フィールド[見積ID]の値がレポートのカレントレコードの[見積ID]の値と
 等しいレコードがテーブル[細項目]に存在しない。

・テーブル[細項目]に格納されているレコードのうち、
 フィールド[見積ID]の値がレポートのカレントレコードの[見積ID]の値と
 等しい全てのレコードにおいて、フィールド[項目]に "現地清算の費用"
 という文字列が格納されている。

考えられるのは以上のいずれか。

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

9 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2021-05-10T06:50:37+00:00

    sk.exe様

    質問の書き方が悪かったと思いますが

    >テーブル[細項目]に格納されているレコードのうち、
    フィールド[見積ID]の値がメインレポートのカレントレコードの[見積ID]の値に等しく、
    かつフィールド[項目]の値が "現地清算の費用" という文字列に等しいレコードを
    集計対象としているのですから、そうなるのは当然の結果です。

    ■[項目]の値が"現地清算の費用"という文字に等しいレコード"のみ"集計の対象から差引したい

     のでございます。「集計の対象から差引したい」だけが希望でございます。

    ・メインレポートとサブレポートは、それぞれの[見積ID]でリンクいたしております。

    よろくしくお願いいたします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2021-05-10T04:43:37+00:00

    > ご教示いただきましたように、コントロールソースに入力いたしましたところ、> 「現地清算の費用」を含む全部の合計金額が計算されてしまいました。

    テーブル[細項目]に格納されているレコードのうち、
    フィールド[見積ID]の値がメインレポートのカレントレコードの[見積ID]の値に等しく、
    かつフィールド[項目]の値が "現地清算の費用" という文字列に等しいレコードを
    集計対象としているのですから、そうなるのは当然の結果です。

    > ◇希望としましては> ・現在設定している全部の合計金額

    「現在設定している全部」とは具体的に何を指しているのでしょうか。

    例えば、テーブル[細項目]に格納されているレコードのうち、
    フィールド[見積ID]の値がメインレポートのカレントレコードの[見積ID]の値に等しく、
    かつフィールド[項目]の値がメインレポートのカレントレコードの[項目]の値に等しい
    レコードを集計対象にしたいのであれば、そういう抽出条件式を記述なされば
    よろしいでしょう。

    > 【項目】の値が「現地清算の費用」の合計を出して、総合計から差し引く方法

    テーブル[細項目]に格納されているレコードのうち、
    フィールド[見積ID]の値がメインレポートのカレントレコードの[見積ID]の値に等しく、
    かつフィールド[項目]の値が "現地清算の費用" という文字列に等しくないレコードを
    集計対象としたい、ということでしょうか。

    > メインレポートとサブレポートがあって、サブレポートの計算合計を

    > メインレポートに表示するようにしています。

    また、DSum 関数をコントロールソースに記述している演算テキストボックスを
    メインレポートではなくサブレポートの詳細セクション上に配置しているようですが、
    メインレポートとサブレポートはどのフィールド同士でリンクしているのでしょうか。

    例えばリンクフィールドが[見積ID]と[項目]なら、普通にその演算テキストボックスを
    メインレポートの詳細セクション上に配置なさればよさそうですが。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2021-05-10T04:13:24+00:00

    sk.exe様

    早速のご教示、ありがとうございます。

    ご教示いただきましたように、コントロールソースに入力いたしましたところ、「現地清算の費用」を含む

    全部の合計金額が計算されてしまいました。

    ◇希望としましては

    ・現在設定している全部の合計金額

     =DSum("(細単価*細数)","細項目","見積ID =" & [Reports]![見積細項目単価入り]![見積ID]) " - "

        ===  項目が「現地清算の費用」と入力された Sum("[細単価]*[細数]") ===を引き算する

    という方法が解ればいいと思っていますが、難しいので

     とりあえず、【項目】の値が「現地清算の費用」の合計を出して、総合計から差し引く方法を

     考えています。

    よろしくお願い致します。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2021-05-10T02:33:54+00:00

    > メインレポートとサブレポートがあって、サブレポートの計算合計を> メインレポートに表示するようにしています。> [項目]という名前のフィールドには、「交通費」とか「宿泊代」とか> 入力するようにしていますが、フィールドに「現地清算の費用」と> 入力されたら、その小合計は表示はするけど、全体の金額には> 含めないようにしたいのです。> =DSum("(細単価*細数)","細項目","見積ID =" & [Reports]![見積細項目単価入り]![見積ID])

    =DSum("[細単価]*[細数]","細項目","[見積ID]=" & [見積ID] & " AND [項目]='現地清算の費用'")


    こういうことが出来ればよい、ということでしょうか。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません