Accessでテキストボックスに入力できる文字数を制限する方法です。テーブルのフィールドサイズで文字数を制限できますが、[入力規則]プロパティで設定することもできます。エラーメッセージも自由に設定できます。
[入力規則]はフォームのプロパティで設定することもできます。
テーブルのフィールドサイズで最大文字数を設定
テーブルをデザインビューで開きます。
フィールドの最大文字数は、フィールドプロパティの[フィールドサイズ]で設定します。
[自己アピール]フィールドの文字数を100文字に制限したい場合は、以下のように[フィールドサイズ]に[100]と入力します。
テーブルをデータシートビューに切り替えて、100文字より多く入力しようとしても入力できません。全角、半角にかかわらず設定した文字数までしか入力できません。
既定のフィールドサイズの変更
[短いテキスト]の最大文字数は[255]文字です。既定値は[255]となっています。
この既定値はオプションの設定で変更することができます。
[ファイル]タブをクリックして[オプション]をクリックします。
または、キーボードから[Alt]→[F]→[T]の順に押して表示します。これは、Word、Excel、PowerPointなどでも使用できます。
[Accessのオプション]ダイアログボックスが表示されます。
[オブジェクトデザイナー]タブの[テーブルデザインビュー]にある[テキスト型のフィールドサイズ]で数値を入力します。
既定は[255]となっていますが、[1~255]の間の整数を入力できます。
以下のように[20]に設定すると、テーブルのデザインで[短いテキスト]を選択した時のフィールドサイズは[20]になります。
ここで設定した変更は、他のデータベースにも反映されますので、よく考えて設定してください。
フィールドサイズの変更
既にデータが入力されているフィールドのフィールドサイズを現在よりも小さい値に変更すると、データの一部が失われてしまう場合があります。
例えば、既定の[255]にしたままデータを入力していて、途中でフィールドサイズを制限しようと[100]にしようとすると、以下のメッセージウィンドウが表示されます。
[はい]をクリックすると、設定した文字数(ここでは[100])からはみ出した文字は容赦なく削除されますので、気を付けてください。
一部のデータが失われる可能性があります。
1つ以上のフィールドのサイズが小さな値に変更されました。データが失われると、入力規則に違反する可能性があります。
このまま続けますか?
入力規則プロパティ
[入力規則]プロパティでは、データを入力するときに入力できる文字数を制限することができます。
フィールドサイズは、最大文字数の設定ですが、入力規則では[LEN]関数を使って、最低文字数も設定できます。
例えば、最低10文字以上入力して欲しい場合は、以下のように入力します。
これで[自己アピール]フィールドには、10文字以上100文字以下の文字数の制限ができます。
LEN関数は、文字列の文字数を返してくれる関数です。
Len([自己アピール])>=10
AND演算子で組み合わせ
入力規則で複数の規則を指定する場合は、AND演算子を使用します。
例えば、ここでは[フィールドサイズ]プロパティで入力できる最大数を制限していますが、[入力規則]プロパティで以下のように指定することもできます。
[自己アピール]フィールドには、10文字以上80文字以下の文字数の制限ができます。
最大値はフィールドサイズで指定している値より小さい値を指定します。
Len([自己アピール])>=10 And Len([自己アピール])<=80
参考以下は、Microsoftのヘルプページです。
入力規則を使ってデータ入力を制限する - Microsoft サポート(Microsoft)
既存のデータが存在する場合
既存のデータが存在する場合に入力規則を設定すると、テーブルを保存するときに確認メッセージが表示されます。
データの入力規則が変更されています。既存のデータは新しい入力規則に違反している可能性があります。
既存のデータが新しい入力規則に従っているかどうか検査しますか?(この処理には時間がかかる場合があります)
上記画面で[はい]のボタンをクリックすると、次に以下のメッセージウィンドウが表示されます。
以下のメッセージウィンドウで[はい]を選択しても違反したデータが存在するかを調べるだけで、既存のデータに対して入力規則が適用されることはありません。
設定後の入力と編集に関して、入力規則のルールが有効になります。
既存のデータは、’自己アピール’フィールドの’入力規則’プロパティの新しい設定に違反しています。
新しい設定で検査を続行しますか?
*新しい設定のまま検査を続行するときは[はい]をクリックします。
*以前の入力規則に戻して検査を続行するときは[いいえ]をクリックします。
*検査を中止するときは[キャンセル]をクリックします。
参考[フィールドサイズ]プロパティで大きい値から小さい値を設定すると、指定したサイズに合わないデータの場合は一部のデータが失われてしまいますが、入力規則の場合は、既存のデータの一部が失われることはありません。
もし、すでにフィールドサイズで数値を指定していて、既存のデータがある場合に指定した値より小さい値に変更する場合は、入力規則で指定するほうがお勧めです。
入力規則に違反したデータを入力した場合
ただ、このままだと入力規則に適合しないデータを入力した場合のエラーメッセージは以下のようになります。これは、標準的なエラーメッセージです。
[エラーメッセージ]プロパティが空白の場合は、以下の標準的なエラーメッセージが表示されます。
'T_写真情報.自己アピール'に設定されている入力規則'Len([自己アピール])>=10'に違反する値が1つ以上あります。このフィールドの式で使用できる値を入力してください。
[エラーメッセージ]プロパティで任意のメッセージを表示
[エラーメッセージ]プロパティでは、任意のメッセージ内容を設定することができます。
[エラーメッセージ]プロパティで指定すると、標準的なエラーメッセージは表示されず、指定したエラーメッセージが表示されるようになります。
例えば、エラーメッセージに以下のように入力します。
10文字以上100文字以下で入力してください。
そうすると、10文字より文字数が少ない場合は、以下のようにメッセージが表示されます。
[入力規則]プロパティで設定した場合は、[エラーメッセージ]プロパティも組み合わせて設定されることをお勧めします。
フォームのプロパティで指定
フォームのコントロールにも[入力規則]プロパティがあります。
テーブルのフィールドと連携しているコントロールでは、テーブルの入力規則が継承されます。
できればテーブルのフィールドプロパティで設定しておくほうが望ましいですが、フォームで設定することもできます。
フォームをデザインビューで開きます。入力規則を設定したいコントロールを選択して、プロパティを表示します。プロパティは[F4]キーで表示できます。
プロパティの[データ]タブを表示すると、[入力規則]と[エラーメッセージ]があります。
参考コントロールのプロパティで設定する場合は、テーブルのフィールドでフィールドサイズや入力規則を設定していないかを確認してください。
入力規則に適合しない場合は、以下のようなエラーメッセージが表示されます。
非連結のテキストボックスの場合は、フォームのプロパティで設定します。
関連以下の記事でも入力規則について記しています。
-
重複データが入力されたらオリジナルのメッセージを表示する
Accessのフォームで受付番号を入力するように作成しています。 受付番号を入力したときに、既に入力済みの番号であればメッセージウィンドウを ...