5/13/2020

Access。クエリで数値がマイナスなら赤色の「▲」で表示したい【Display format】

Access。クエリで数値がマイナスなら赤色の「▲」で表示したい

<Access:表示形式>

Excelの桁区切りスタイルのボタン。

そう、三桁区切のカンマボタンをクリックして、スタイルを設定後、数値をマイナスにすると、自動的に「赤色」に変わりますが、これと同じことを、Accessの演算フィールドの算出結果にも行いたい場合、どうしたらいいでしょうか?

Accessには、残念ながらExcelの三桁区切りのボタンは存在していません。

では、次のテーブルからクエリを作っていきます。

作成タブのクエリデザインをつかって、クエリをつくっていきます。

売上目標と売上高の差を算出する演算フィールドを算出していきますので、
目標差: [売上高]-[売上目標]
という演算フィールドをつくります。

ここまでの状態を確認してみましょう。

目標差は、正数も負数もゼロも、文字の色は黒色です。マイナスは、「▲」の表示でもありません。

この算出結果をケースによって変えていきたいわけです。

デザインビューに切り替えます。

演算フィールドを選択します。

カーソルがあるだけでも、選択されている状態ですが、今回はわかりやすいように、列で選択しています。

クエリツールのデザインタブにある「プロパティシート」をクリックします。

プロパティシート作業ウィンドウが表示されますので、標準タブの書式に、次の設定を行います。

#;[赤]▲#;0;#
と設定したら、実行して確認してみましょう。

マイナスの結果のところは、赤色で「-」ではなく「▲」で表示することができました。

#;[赤]▲#;0;# は、
正数;負数;ゼロ;文字という順番のルールになっています。

基本的には、Excelの表示形式と同じですね。

負数のところは、[赤]とすることで、文字の色を赤色にすることができますし、▲と設定してあるので、負数の時には、▲で表示するように設定した表示形式ですね。

さて、ここでアレンジというとかアイディアでIF関数のようなことも設定することができます。

目標差の演算フィールドのとなりに、達成という演算フィールドをつくります。

達成: [売上高]-[売上目標]
という演算フィールドをつくりました。

やりたいことは、売上高が売上目標より大きければ、「達成」
越えなければ「達成せず」、もし同じ場合は「同じ」という文字を表示したいということが、先程と同じ方法で、設定することができます。

"達成";"達成せず";"同じ" とプロパティシートの書式に設定します。

たったこれだけですが、実行して確認してみましょう。

このように、達成の有無を表示することができました。

IF関数でいいのでは?と思うかもしれませんが、Accessの場合、三分岐を設定する場合、IIF関数でつくるのが少々面倒と感じられる方もいますので、プロパティシートの書式で設定する方法もあります。