7/27/2024

Access。前後の1文字を残して、それ以外は「*」にした伏字をつくるには【Obscure】

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文字分を残した伏字をつくることができます。