Access。前後の1文字を残して、それ以外は「*」にした伏字をつくるには
<String関数>
顧客名など、表示するのにあたり、個人情報保護から「*」をつかった伏字にしたい場合、Accessでは、どのようにしたらいいのでしょうか。
クエリで対応するとして、前後の1文字を表示するには、Left関数とRight関数をつかえば対応することができそうです。
「*」の伏字の数をどのようにしたらいいのでしょうか。
「*」の数は、文字数から前後1文字分を減らした数です。
文字数を求めるにはLen関数をつかいます。
Left関数・Right関数・Len関数とここまではExcelと変わりません。
あとは、「*」に置換したいわけです。
ExcelのREPT関数は、Accessには、ありませんが、REPT関数と同じように、文字を指定した数だけ繰り返す、String関数をAccessでは使用します。
作成タブのクエリデザインをつかって、クエリをつくります。
伏字という演算フィールドをつくります。
伏字: Left([顧客名],1) & String(Len([顧客名])-2,"*") & Right([顧客名],1)
実行して確認します。
前後1文字はそのままで、文字の中を「*」をつかって伏字にすることができました。
では、演算フィールドを確認しておきましょう。
Left関数とRight関数は、それぞれ、前後1文字ずつを抽出する関数です。
「&(アンパサンド)」をつかって、文字結合しています。
String(Len([顧客名])-2,"*")が、伏字に置換しているところです。
String関数の最初の引数は、「数」です。繰り返す”数”です。
そこで、Len関数をつかって、文字数を求めています。
そして、前後1文字分は除くので「-2」とします。
String関数の2つ目の引数は、「文字」です。繰り返しで表示する文字のことです。
このような演算フィールドをつくることで、前後1文字分を残した伏字をつくることができます。