【Access】Len関数、LenB関数の使い方

アクセス担当のまみです。

社員コードや商品コード等文字数の決まっているデータがあります。

文字数が決まっているはずなのになぜだか1文字多かったり少なかったり、やっぱり入力ミスってありますね。

そんな時にお世話になるのがLen関数とLenB関数です。

Len関数は指定した文字列の文字数を、LenB関数はバイト数を数えてくれるので、文字数制限に使えますよ!

 

今回はLen関数、LenB関数についてお伝えしますね。

 

文字数を数えてくれるLen関数

 

構文
Len(文字列 or 変数)

指定した文字列or変数の文字数を返してくれます。

 

(はてな君)
Len関数って文字数を数えてくれるんだね。
(あいちゃん)
そうなんだよ。実際にやってみる?
(はてな君)
やってみる!

 

使用するテーブル

「T_サンプルデータ」

さっそくクエリを使って製品名の文字数を数えてみましょう!

 

リボンの①「作成」タブから②「クエリデザイン」を選択し、「T_サンプルデータ」を追加します。

 

③フィールドに直接入力してもいいですが、右クリックして「ズーム」を選択すると、大きな画面で編集できます。

 

④「文字数: Len([製品名])」と入力して「OK」を左クリックしましょう。

 

(あいちゃん)
フォームビューで確認してみてね!

 

クエリの結果

 

(はてな君)
文字数を数えてくれたよ!

 

バイト数を数えてくれるLenB関数

 

構文
LenB(文字列 or 変数)

Len関数は文字数を数えてくれますが、LenB関数はバイト数を数えてくれます。

 

(あいちゃん)
WindowsとMacintoshで返される値が違うので注意が必要なんだよ。

 

Windowsでは全角も半角も1文字2バイト、Macintoshでは全角は2バイト、半角は1バイトで数えてくれます。

 

(はてな君)
へ~。WindowsとMacintoshでバイト数が違うんだね。

 

(あいちゃん)
アクセスがデータをUnicodeで保存するからなんだけど、Unicodeって半角も全角も2バイトなんだ。MacintoshはUnicodに対応してないんだよ。

 

(はてな君)
なるほど~。WindowsとMacintoshを使っている人が混じっていたら同じファイルなのに結果が違うってことになるんだね。

 

(あいちゃん)
そうなるね。同じ会社でWindowsとMacintoshが混じっていることは、多分ないかな。管理が大変だし。

 

使用方法はLen関数と同じです。製品番号のバイト数を数えてみましょう。

 

フィールドに「文字数: Len([製品名])」と入力して「OK」を左クリックしましょう。

 

クエリの結果

 

(はてな君)
Windowsのパソコンだから、半角も全角も交じってるけど全部18バイトだ!

クエリは「Q_Len関数」と名前をつけておきましょう。

 

Len関数を使って文字数を制限する

 

(はてな君)
Len関数やLenB関数で文字数やバイト数が数えられるのはわかったけどどうやって使うの?

 

(あいちゃん)
いつも7文字で入力したいとか5文字以下にしたいとかそんなデータない?
そういう時に文字数制限ができるんだよ。

 

(はてな君)
製品番号って9文字だよ!だけど8文字だったり9文字だったりするデータがあって困ってたんだ。

 

製品番号に9文字以外の入力でエラーメッセージが出るようにしてみましょう。

 

テーブルをデザインビューで開き、フィールド名の①「製品番号」が選択されている状態で②「入力規則」に「Len([製品番号])=9」と入力、「エラーメッセージ」に「製品番号は9文字で入力してください」と入力しましょう。

 

(あいちゃん)
データシートビューに切り替えてみてね!

 

データシートビューに切り替えようとするとメッセージが出るので「OK」を左クリックで閉じておきましょう。

 

 

(はてな君)
9文字の入力じゃないとエラーメッセージで次に進めなくなったよ!

VBAで文字数制限する方法は下記の記事をどうぞ!

アクセスVBAで決まった文字数しか入力できないようにしよう

2018年10月20日

 

まとめ

 

データ入力時に文字数の制限をしてくれたらとっても助かります。

ミスを前もって防げる工夫は必要ですね。

 

ぜひ活用してくださいね!