2020.2.3

コンボボックスでリスト以外の項目を選択させない方法

コンボボックスはリストボックスと違ってテキストでの入力も可能で、値集合タイプが「値リスト」の場合は、リストの内容を変更することも可能です。基本的にはそういったことはさせたくないことが多いので、入力やリストの変更を通常は制限します。

入力チェックの追加

設定したリスト以外の項目を選択させないようにするにはコンボボックスのプロパティ「入力チェック」で「はい」を選択します。

この状態でコンボボックスに文字を入力して、その文字がリストに存在しない場合は、フォーカスアウト時にメッセージが表示され、他のコントロールにカーソルを移動することができなくなります。

なお、連結列にリストのキー列を指定している場合、入力チェックは自動で「はい」が設定され、変更することができません。

値リストの編集を許可しない

値集合タイプが「テーブル/クエリ」の場合は、上記の入力チェックだけでOKですが、「値リスト」の場合は、リストの編集もNGにしないといけません。

値リストの編集を許可していると、リストにない項目を入力してEnterを押した時に以下のような確認メッセージが表示され、

「はい」を選択すると、編集用のダイアログが表示されます。

ここでリストの内容を書き換えて

「OK」を選択すると、編集した内容でリスト項目が更新されてしまいます。

フォームをデザインビューで開いた時のプロパティ「値集合ソース」の内容も書き換わってしまうため、通常、この値リストの編集は許可しないようにします。

設定方法は、コンボボックスのプロパティに「値リストの編集の許可」という項目があるので、これを「いいえ」に設定します。

値リストの編集の許可については、デフォルトが「はい」になっているので、リストの内容を変更させたくない場合は、忘れずに「いいえ」に変えておきましょう。

Access】関連記事