#616 非連結のテキストボックスのデータ型を制限するには? フォーム

Accessのフォームでは、フォーム自体をテーブルやクエリと連結するとともに、コントロールの「コントロールソース」プロパティを所定のフィールドに設定することによって、両者が連結され、そのテーブル上のフィールドのデータ型設定がそのままコントロールに反映されます。

たとえば、数値型フィールドであれば文字は入力できない、日付型フィールドであれば実在しない日付は入力することができない、といった制御をAccessが勝手にやってくれます。


一方、非連結のコントロール、つまりコントロールソースプロパティが設定されていない場合には、そのような制限を自動的に行わせることはできませんので、フォームのデザイン上で設定してやる必要があります。

ここではその一例として、プロパティシートだけで設定可能な、非連結のテキストボックスのデータ型を制限する2つの方法について説明します。


■「書式」プロパティによる方法
  1. フォームのデザインビューにおいて、設定対象となるテキストボックスを選択してプロパティシートを表示します。

  2. 「書式」プロパティの欄の右端の[▼]ボタンをクリックして、書式の一覧をドロップダウン表示させます。


  3. たとえばそのテキストボックスを「日付型」として制御させたい場合には、『日付(標準)』を選択します。


  4. フォームビューに切り替えて、「6月31日」のような実際にはない日付を入力すると、下図のようなメッセージが表示されるようになります。


  5. 一方もしテキストボックスを「数値型」として制御させたい場合には、「書式」プロパティに『数値』を指定します。


  6. フォームビューに切り替えて、数字以外の文字を入力すると、下図のようなメッセージが表示されるようになります。



■「入力規則」プロパティによる方法
たとえば日付型のデータの入力のみを許可するようにしたい場合には、プロパティシートにおいてそのテキストボックスに次のようなプロパティ値を設定します。
  • 入力規則 → IsDate([テキスト0])

  • エラーメッセージ → 正しい日付を入力してください!


これを実行すると次のようなメッセージが表示されます。


なお、式『IsDate([テキスト0])』では、「IsDate」関数は引数の値が正しい日付形式かどうかをチェックします。そしてそのチェック対象の引数としてテキストボックスコントロールの名前”テキスト0”を指定しています。

入力規則プロパティでは、これ以外の関数によってもその値をチェックすることができます。たとえば引数が数値かどうかを調べるには、「IsNumeric」関数を使います。
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved