- ベストアンサー
ACCESSのレポート上で同じ受注番号なら金額を表示させない
環境:XP Pro&ACCESS2003 以下のようなレポートがあります。 号機フッターを作り、以下のようにA号機、B号機 というようにしています。 レポートは、クエリーを経由し、クエリーのリレーション上、下記のように 出力されます。 受注NO 品名 得意先 金額 A号機 1000001 ちらし A商店 100000 1000010 リーフレット B商店 5000 1000011 名刺 C商店 1250 1000012 折込チラシ D商店 3600 B号機 1000001 ちらし A商店 100000 1000010 リーフレット B商店 5000 1000081 文庫本 E商店 6000 1000012 折込チラシ D商店 3600 という様に表示されます。 レポート上で受注番号が同じだったら、2件目以降の金額を”0”にする、という ような処理は出来ないでしょうか。 *これは同じ受注番号(上記例:受注NO”1000001”は違うA号機で表、B号機で裏を刷っている=印刷している。また印刷費という項目は、受注番号に対して1対1の為です) 実現したいこと(上記の例で) 受注NO 品名 得意先 金額 A号機 1000001 ちらし A商店 100000 1000010 リーフレット B商店 5000 1000011 名刺 C商店 1250 1000012 折込チラシ D商店 3600 B号機 1000001 ちらし A商店 0 1000010 リーフレット B商店 0 1000081 文庫本 E商店 60000 1000012 折込チラシ D商店 0
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
表示金額:IIf(DCount("*","テーブル名","受注NO = " & [受注NO] & " and 号機 < '" & [号機] & "'")=0,[金額],Null) テーブル構造が分からないので、最適な答えか分かりませんが、これで求まるかな。 方向性としては、#2さんの回答と同じです。 号機 < '" & [号機] & "'" この部分で、現在の「号機」が初めて出てきたのか、既出なのかのチェックになります。(テーブル構造が分からないので、文字列のまま比較していますが、本来は「号機」のマスターテーブルの主キーなどを利用すべきです。)
その他の回答 (2)
クエリに2つの列を追加するという一番簡単な方法を・・・。 重複: IIf([機種名]="A号機",1,Abs(DCount("*","受注履歴","受注NO=" & [受注NO] & " AND 機種名='A号機'")=0)) 表示金額: [金額]*[重複] レポートに[表示金額]を配置します。 ※機種名を埋め込んでいるので汎用性はありません。 ※機種名が2つであれば有効です。
- CHRONOS_0
- ベストアンサー率54% (457/838)
テーブルはどのようになっているのですか?
補足
すいません。機種はA,B号機だけでなく8機種です。