• ベストアンサー

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

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.3

表示金額:IIf(DCount("*","テーブル名","受注NO = " & [受注NO] & " and 号機 < '" & [号機] & "'")=0,[金額],Null) テーブル構造が分からないので、最適な答えか分かりませんが、これで求まるかな。 方向性としては、#2さんの回答と同じです。  号機 < '" & [号機] & "'" この部分で、現在の「号機」が初めて出てきたのか、既出なのかのチェックになります。(テーブル構造が分からないので、文字列のまま比較していますが、本来は「号機」のマスターテーブルの主キーなどを利用すべきです。)

その他の回答 (2)

noname#140971
noname#140971
回答No.2

クエリに2つの列を追加するという一番簡単な方法を・・・。 重複: IIf([機種名]="A号機",1,Abs(DCount("*","受注履歴","受注NO=" & [受注NO] & " AND 機種名='A号機'")=0)) 表示金額: [金額]*[重複] レポートに[表示金額]を配置します。 ※機種名を埋め込んでいるので汎用性はありません。 ※機種名が2つであれば有効です。

idek
質問者

補足

すいません。機種はA,B号機だけでなく8機種です。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

テーブルはどのようになっているのですか?

関連するQ&A