数字のゼロ埋め(ゼロパディング)をする

 1という数値であっても表示上は「00001」というように0から始まる形にして見た目の桁数を揃えたい、という場合があります。また、見た目だけでなく0から始まる文字列に変換してしまいたいという場合もあります。それらの方法について示します。

 例として右のようなテーブルを用います。会員番号は数値型ですが、この値そのものは変更しないものの、「00000101」というように8桁で表示されるようにしてみます。


テーブル上でゼロ埋め表示させる場合

 テーブルデザインの画面で「会員番号」列を選択し、プロパティの「書式」に「00000000」と記入します。


 うまくいきました。


 さて、Excelの場合と違って、書式により付加された0の部分を選択できます。上記の画像からわかるようにデータ型自体は変更されていませんが、文字列に変換されたみたいでちょっと気になるところです。
(※Excelでもセルの表示形式を変えることで同じようにゼロ埋めできます。このとき、セルの編集中はゼロ埋めは解除され、表示形式の設定によって付加された0を選択することはできません。ただしセルそのものをコピーした場合は付加された0も含めてコピーされます。)


 そこで、試しにLeft関数を使って会員番号の左端の数字が何か調べてみます。


 左端の数字は1ないし2と判断されています。つまり0は記録されている値ではなくあくまで表示上の存在であることがわかります。


クエリ上でゼロ埋めされた文字列を取得する場合

 次に、本当に8桁の値に変換してしまいたいという場合です。
 元のテーブルではなくクエリで実現します。
 Format関数を用いて次のように記します。



会員番号8桁: Format([会員番号],"00000000")

ついでにLeft関数を使ってその左端の数字が何になるか調べてみます。


 この場合は左端の数字は0となります。Format関数によって8桁の文字列に変換されたことがわかります。