ACCESS 0を非表示にする方法

0を非表示にする方法

ACCESSでは0と空白は全く別物として扱われます。

データとして0が入っていても、レポート上では空白に見せたいときがあると思います。
そんな時は書式設定で0を非表示にすることが可能です。

今回は、0を非表示にする方法をご紹介します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSの基本的な使い方をご紹介していきます。

0を非表示にする方法

ACCESSの実データはテーブルに保存されています。
しかし実際にユーザーがテーブルを直接操作することは少ないため、フォームやレポートを通してデータが表示されることの方が多くなります。

この際、フォームやレポートで表示する値の元となっているデータを「レコードソース」と呼びます。

テーブルのデータが0になっているものをフォームやレポートで値がない状態、空白として表示するには以下の2つの方法があります。

どちらの方法でも実現可能ですが、比較的①の方が簡単でしょう。

どちらの方法でも上記のように、値が0の場合は空白で表示し、数値がある場合はカンマ区切りや小数点以下の桁数を指定して表示することが可能です。
以下で、それぞれの方法を紹介します。

フォームやレポートの書式設定で表示だけを空白にする

値が0であるにもかかわらず、表示を空白にするための書式設定を説明します。
先に結論から伝えますと、整数、小数それぞれで以下のように書式を設定することで0を空白表示できます。

整数の場合

小数の場合

さらにどちらも、小数点以下表示桁数は「自動」に設定します。

では、具体的に説明しましょう。
サンプルテーブルとして以下を準備しました。

単価と数量を入力するテーブルです。
単価は整数、数量は小数点第一位まで表示するようにしています。

デザインビューでそれぞれのフィールドの設定を見てみると以下の通りです。

単価、数量ともに数値型のデータとしています。
更に単価、単価2の詳細設定は以下の通りです。

フィールドサイズを長整数型とし、書式を標準、小数点以下表示桁数を0に設定しています。
これにより、整数を3桁区切りの「,」を付けた状態で表示できます。

一方、数量、数量2は以下の設定です。

こちらは少数を表示するためにフィールドサイズは倍精度浮動小数点型、書式は標準で小数点以下表示桁数は1にしています。
これにより、たとえ小数点以下の数値が0だとしても常に小数点第一位まで表示することができます。

では、このテーブルを元にレポートを作成しましょう。

2レコード目の単価、数量が0で表示されています。
この0が表示されないように変更していきます。

レポートをデザインビューで開きます。

単価2を選択し、プロパティシートで

と設定しましょう。

書式で利用している#はプレースホルダーと呼ばれ、数値1桁を表現しています。数値がなければ空白を表示する仕様のため、今回のような0であれば空白にしたい場合にぴったりです。
同じように数値を表すプレースホルダーに「0」がありますが、0,000と設定すると、数値が0の場合は0と表示されますのでご注意ください。

書式に「,」を付けているのは3桁区切りとするためです。

また、数量2は以下のように設定します。

書式、小数点以下表示桁数の設定はこちらです。

こちらの書式設定も解説します。
まずこの書式は「;」によって複数のセクションに区切られています。

書式設定はこの1行の中で正、負、ゼロ (0)、null (未定義) の4つの場合の書式を設定することが可能で、それぞれのセクションを区切る記号が「;」なのです。

最初の「0.0」は正の数の場合の書式ですが、「0」は数字1桁を表すプレスホルダーですので、「0.0」と設定することで、たとえ小数点以下の数値が0だったとしても小数点第一位を0で表示することが可能です。

その後、「;」が2回続き、値がゼロの場合の書式設定が「#」です。
「#」は先ほどお伝えした通り0の場合は非表示になるプレースホルダーです。

では、レポートを印刷プレビューにして結果を見てみましょう。

2レコード目が空白で表示され、他のレコードは桁数が正しく表示されていることが分かります。
このようにして正の数の場合は小数点以下第一位まで表示し、0の場合は空白にすることが可能です。

レコードソースのデータ自体を0ではなく空白にする

次に、レコードソースのデータ自体を0ではなく空白にする方法をご紹介します。
こちらの場合はまずはレコードソースのデータを変更するためにクエリを作成します。

クエリデザインから作成しましょう。

クエリデザイン

デザインビューでは以下のように設定します。

先ほどサンプルでお見せしたtest_ゼロ表示テーブルを元に、ゼロ_単価とゼロ_数量という新しいフィールドを計算結果をもとに作成しています。
それぞれ、クエリのフィールド欄に以下のように記述します。

クエリのフィールド欄は「:」で区切って左側をフィールド名、右側を計算式にすることで新しいフィールドを作成できます。
今回はITf関数を使って単価、数量のそれぞれのフィールドが0だった場合に、Null(空白)に変換するようにしています。

この際、Nullではなく””と入力してしまうとフィールドのデータ型が数値ではなくテキスト型と認識されてしまい、0以外の数値が入った場合の書式設定が正しくできなくなるので注意してください。

では、データシートビューで結果を見てみましょう。

このように、2レコード目の単価、数量ともに0が入っているレコードでは、ゼロ_単価、ゼロ_数量フィールドが空白表示にできました。
ゼロ_単価の方が小数点以下の数値が表示されてしまっていますが、クエリではいったんこのままにしてレポート側の書式設定で対処します。

では、レポート側の設定です。
レポートをデザインビューで開きます。

まず、レポート全体を選択し、プロパティシートの「データ」タブでレコードソースを先ほど作成したクエリ「test_ゼロ表示変換」に変更します。
これにより、レポートのレコードソースにゼロ_単価、ゼロ_数量を利用できるようになります。

その上で、単価、数量のレコードソースをゼロ_単価、ゼロ_数量に変更します。

ゼロ_単価は整数なのでプロパティシートで書式、小数点以下表示桁数を以下の通り設定します。

ゼロ_数量は小数点第一位まで表示するので以下の通りです。

では、印刷プレビューを見てみましょう。

このように、2レコード目は空白で、その他のレコードは桁数も正しく表示されるようになりました。

以上、0を非表示にする方法をご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス紹介

最後までお読みいただき、ありがとうございました。