未入力のフィールドに代わりの文字列を表示する

 よくWEB上のフォームで郵便番号欄に「000-0000」、コメント欄に「感想を255字以内でお書きください」などと表示されていて、入力しようとするとそれが消えるというのがあります。
 要するに値がNullのフィールドにおける代替表示ですが、Accessのテーブルやフォームでも同じようなことが可能です。

f:id:accs2014:20161112222516p:plain:right:w400

 テーブルでやってみます。
 テキスト型の列の場合ですが、書式プロパティに

@;[赤]"未入力"

と入力します。セミコロンの前の設定値は値が入力されたときに適用される書式を表しており、セミコロンの後の設定値は値がNullのときに適用される書式を表しています。つまり値が入力されたときは書式「@」が適用され入力値がそのまま表示されます。一方Nullの場合は書式「[赤]"未入力"」が適用され、赤字で「未入力」と表示されます。


f:id:accs2014:20161112224559p:plain:right:w400

 次に数値型の場合です。書式プロパティに

0;-0;0;[赤]"未入力"

と入力します。セミコロンで区切られた最初の設定値は値がプラスのときに適用される書式、2番目は値がマイナスの時に適用される書式、3番目はゼロの時に適用される書式、最後がNullの時に適用される書式です。
 数値が入力されたときはそのまま表示されますが、Nullのときは赤字で「未入力」と表示されます。


f:id:accs2014:20161112222514p:plain:right:w400

 日付/時刻型の場合です。書式プロパティに

yyyy/mm/dd;;;[赤]"未入力"

と入力します。基本的には数値の時と同じ考え方ですが、値がマイナスまたはゼロとなることはまずありませんので省略し、最初と最後の書式のみ記入しています。日付が入力されたときはそのまま表示され、Nullのときは赤字で「未入力」と表示されます。


f:id:accs2014:20161112224557p:plain:right:w400

 データシートビューです。赤が目立ちすぎる感じですがグレーなどが選べないので仕方ありません。ただしフォームの場合は条件付き書式が使えます(「フィールドの値」ではなく「式」を選び「IsNull([氏名])=True」などとする)ので淡い色の表示も可能です。
 なお、未入力のフィールドに入力しようとするとき(フィールドにフォーカスが来たとき)テキスト型と数値型のフィールドに関しては「未入力」の文字がサッと消えますが、日付/時刻型のフィールドでは残りますので手動で消す必要があります。