Office 2019 Access 2019

コンボボックスにリスト以外の値が入力されないようにするには

投稿日:2022年5月4日 更新日:

テーブルやフォームでコンボボックスのリストから値を選択して入力するようにしていても、プロパティの[入力チェック]を[いいえ]に設定していると、値を直接入力できてしまいます。

プロパティの[入力チェック]を[はい]に設定すると、リスト以外の値は入力できなくなります。

ただ、テーブルのフィールドプロパティと、フォームのプロパティで異なる設定をしていると、この設定が無効になることがあります。

コンボボックスのリストが値リストの場合とテーブルの場合に分けて解説します。

[入力チェック]を[はい]に設定した時のメッセージウィンドウ

参考ここでは、ウィンドウの表示は既定の[タブ付きドキュメント]の設定にしています。

[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い

Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...

続きを見る

コンボボックスのリストが[値リスト]の場合

テーブルでコンボボックスを使って入力する方法は、以下の記事で解説しています。ルックアップウィザードを使っての設定です。

ルックアップウィザードを使用してドロップダウンリストを設定(値を直接入力)

テーブルのデータ型には、[ルックアップウィザード]というのがあります。 ルックアップウィザードを選択して、ウィザードに従って設定していくと、 ...

続きを見る

以下は、テーブルのデザインビューです。

[担当者]フィールドを選択して、フィールドプロパティの[ルックアップ]タブを選択しています。

[担当者]フィールドは、[表示コントロール]で[コンボボックス]を選択して、[値集合ソース]に値を入力して作成しています。

[入力チェック]は[いいえ]に設定しています。既定は[いいえ]です。

フィールド[担当者]のフィールドプロパティ

データシートビューに切り替えると、[担当者]フィールドは、コンボボックスから選択できるようになります。

テーブルのデータシートビューのコンボボックス

[入力チェック]が[いいえ]の場合は、リストに表示されていない値もコンボ ボックスに入力できます。

コンボボックスのリスト以外の値を入力したテーブル

[入力チェック]が[はい]の場合のテーブル

[担当者]フィールドのフィールドプロパティの[入力チェック]で[はい]に設定します。

ここでは、[値リストの編集の許可]は[はい]に設定しています。

フィールドプロパティの[入力チェック]で[はい]に設定

テーブルのデータシートビューでリスト以外の値を入力しようとすると、以下のメッセージが表示されます。

入力したテキストはリスト内の項目ではありません。

[入力したテキストはリスト内の項目ではありません。]のメッセージウィンドウ

メッセージウィンドウの[いいえ]を選択すると、以下のようになります。

メッセージウィンドウで[いいえ]を選択した場合のコンボボックス

[はい]を選択すると、[リスト項目の編集]ウィンドウが表示されます。

このまま[OK]ボタンをクリックすると、コンボボックスのリストに項目が追加されます。

[リスト項目の編集]ウィンドウ

参考プロパティで[値リストの編集の許可]が[はい]に設定されている場合のみ、[リスト項目の編集]ウィンドウが表示されます。

[値リストの編集の許可]が[いいえ]になっている場合は、以下のメッセージウィンドウが表示されます。

[値リストの編集の許可]が[いいえ]のプロパティ

指定した項目はリストにありません。

リストから項目を選択するか、リスト項目と同じテキストを入力してください。

[指定した項目はリストにありません。]のメッセージウィンドウ

フォームのプロパティで[入力チェック]を設定

[入力チェック]はフォームのコンボボックスのプロパティでも設定できます。

この時、テーブルでの[入力チェック]が[はい]になっているか、[いいえ]になっているかで異なります。

テーブルのフィールドプロパティで[入力チェック]が[いいえ]の場合

フォームのデザインビューです。

[担当者]コンボボックスのプロパティで[入力チェック]を[はい]に設定します。

コンボボックスのプロパティで[入力チェック]を[はい]に設定

コンボボックスの[入力チェック]を[はい]に設定しても、テーブルのフィールドプロパティで[いいえ]を選択していれば、リスト以外の値を入力できてしまいます。

リスト以外の値を入力したフォームのコンボボックス

テーブルのフィールドプロパティで[入力チェック]が[はい]の場合

[担当者]コンボボックスのプロパティで[入力チェック]を[いいえ]に設定します。

コンボボックスのプロパティで[入力チェック]を[いいえ]に設定

フォームのコンボボックスで[いいえ]に設定しても、テーブルのフィールドプロパティで[はい]を選択していれば、メッセージウィンドウが表示されます。

入力したテキストはリスト内の項目ではありません。

[入力したテキストはリスト内の項目ではありません。]のメッセージウィンドウ

上記メッセージウィンドウが表示されるのは、プロパティで[値リストの編集の許可]が[はい]に設定されているためです。

上記メッセージウィンドウで[はい]を選択すると、[リスト項目の編集]ウィンドウが表示されます。

プロパティで[値リストの編集の許可]が[いいえ]に設定している場合は、以下のメッセージウィンドウが表示されます。

指定した項目はリストにありません。

リストから項目を選択するか、リスト項目と同じテキストを入力してください。

[指定した項目はリストにありません。]のメッセージウィンドウ

参考コンボボックスのリストを[値リスト]で設定していて、フォームの[入力チェック]の設定どおりにいかない場合は、テーブルでのプロパティの設定を確認してみてください。

データベースを共有で使用している場合は、リストを勝手に追加したり削除されることは避けたいですね。[値リストの編集の許可]の設定も合わせてチェックされることをおすすめします。

テーブルでコンボボックスの設定をしていない[テキストボックス]の場合は、フォームの設定どおりになります。

フォームで[入力チェック]を[はい]にすると、[入力したテキストはリスト内の項目ではありません。]のメッセージウィンドウが表示されて、[はい]を選択すると、[リスト項目の編集]ウィンドウが表示されます。

[入力したテキストはリスト内の項目ではありません。]のメッセージウィンドウ

これもプロパティで[値リストの編集の許可]が[はい]に設定されている場合です。

コンボボックスのプロパティで[値リストの編集の許可]を[はい]に設定

[値リストの編集の許可]が[いいえ]の場合は、[指定した項目はリストにありません。]のメッセージウィンドウが表示されます。

[指定した項目はリストにありません。]のメッセージウィンドウ

コンボボックスのリストが[テーブル/クエリ]の場合

テーブルでコンボボックスを使って入力する方法は、以下の記事で解説しています。ルックアップウィザードを使っての設定です。

ルックアップウィザードでコンボボックスの設定(別のテーブルから値取得)

Accessのテーブルで、フィールドに入力する値をコンボボックスから選択する方法です。 コンボボックスとは、フィールドの値を入力する代わりに ...

続きを見る

以下は、テーブルのデザインビューです。

[得意先ID]フィールドは、[表示コントロール]で[コンボボックス]を選択して、[値集合タイプ]で[テーブル/クエリ]、[値集合ソース]に[T_得意先]を指定しています。

[入力チェック]は[いいえ]にしています。既定は[いいえ]です。

参考ここでは、リレーションシップで参照整合性の設定をしていない場合です。参照整合性の設定をしている場合は、異なります。

テーブルのコンボボックス-フィールドプロパティの設定

テーブルをデータシートビューに切り替えると、以下のように[得意先ID]フィールドは、コンボボックスのリストから選択できるようになります。

データシートビューのコンボボックス

リスト以外の値も入力できます。

コンボボックスのリスト以外の値を入力

参考テーブル[T_得意先]のデータシートビューは以下のようになっています。

テーブル[T_得意先]のデータシートビュー

[入力チェック]が[はい]の場合のテーブル

[得意先ID]フィールドのフィールドプロパティの[入力チェック]を[はい]に設定します。

フィールドプロパティの[入力チェック]を[はい]に設定

データシートビューに切り替えて、リスト以外の値を入力して確定しようとすると、以下のメッセージウィンドウが表示されます。

指定した項目はリストにありません。

リストから項目を選択するか、リスト項目と同じテキストを入力してください。

[指定した項目はリストにありません。]のメッセージウィンドウ

フォームのプロパティで[入力チェック]を設定

[入力チェック]はフォームのプロパティでも設定できます。

この時、テーブルでの[入力チェック]が[はい]になっているか、[いいえ]になっているかで異なります。

テーブルのフィールドプロパティで[入力チェック]が[いいえ]の場合

フォームのデザインビューです。

[得意先ID]コンボボックスのプロパティで[入力チェック]を[はい]に設定します。

フォームのコンボボックスのプロパティ[入力チェック]-[はい]

リスト以外の値を入力すると、メッセージウィンドウが表示されます。

指定した項目はリストにありません。

リストから項目を選択するか、リスト項目と同じテキストを入力してください。

[指定した項目はリストにありません。]のメッセージウィンドウ

テーブルのフィールドプロパティで[入力チェック]が[はい]の場合

[得意先ID]コンボボックスのプロパティで[入力チェック]を[いいえ]に設定します。

コンボボックスのプロパティで[入力チェック]を[いいえ]に設定

コンボボックスのリスト以外の値が入力できます。

コンボボックスのリスト以外の値を入力

参考コンボボックスの値リストにテーブルを設定した場合、テーブルプロパティで[入力チェック]を[いいえ]にしていても、フォームで[はい]に設定すると、リスト以外の値は入力できなくなります。

コンボボックスの値をテーブル/クエリで設定している場合は、テーブルプロパティの[入力チェック]が[はい][いいえ]のどちらであっても、フォームの[入力チェック]での設定が有効になります。

参照整合性を設定したテーブルをコンボボックスのリストにした場合

データベースで以下のようにリレーションシップを設定しているとします。

テーブル[T_得意先]とテーブル[T_売上管理]でリレーションシップの設定をしています。

リレーションシップと参照整合性については、以下の記事で解説しています。

リレーションシップの作成と参照整合性の設定

Accessでは、複数のテーブルがあって、そのテーブル間の共通フィールドを関連付けることができます。この関連付けのことを[リレーションシップ ...

続きを見る

リレーションシップ

[入力チェック]が[いいえ]の場合のテーブル

[得意先ID]のフィールドプロパティの[入力チェック]を[いいえ]にしています。

テーブルプロパティ[入力チェック]-[いいえ]

データシートビューに切り替えてリスト以外の値を入力してみます。入力はできますが、

リスト以外の値を入力

レコードを保存しようとすると、以下のメッセージウィンドウが表示されて保存はできません。

テーブル'T_得意先'にリレーションシップが設定されたレコードが必要なので、レコードの追加や変更を行うことはできません。

[レコードの追加や変更を行うことはできません。]のメッセージウィンドウ

上記メッセージで[OK]ボタンをクリックして、保存しようとすると、今度は以下のメッセージウィンドウが表示されます。

このレコードを保存できません。

[このレコードを保存できません。]のメッセージウィンドウ

参考参照整合性の設定をしていると、[入力チェック]を[いいえ]の設定にしていても、リスト以外の値は保存できません。設定や入力のミスがあったとしてもデータの整合性は保たれるわけです。

[リレーションシップ]ダイアログボックスで[フィールドの連鎖更新]、または[レコードの連鎖削除]をオンにすると、関連テーブル側のレコードを更新したり、削除できるようになります。

リレーションシップの[フィールドの連鎖更新]と[レコードの連鎖削除]

Accessでは、参照整合性を設定することで、データの入力や更新、削除が制限されてデータの整合性を保つことができます。 リレーションシップの ...

続きを見る

[入力チェック]が[はい]の場合のテーブル

[得意先ID]のフィールドプロパティの[入力チェック]を[はい]にしています。

[入力チェック]を[はい]に設定したテーブルプロパティ

以下のメッセージウィンドウが表示され、入力を確定できません。

指定した項目はリストにありません。

リストから項目を選択するか、リスト項目と同じテキストを入力してください。

[指定した項目はリストにありません。]のメッセージウィンドウ

フォームの[入力チェック]で設定した場合

テーブルプロパティで[入力チェック]を[いいえ]にしていても[はい]にしても、フォームでの動作は同じです。

フォームのコンボボックスで[入力チェック]を[いいえ]に設定をしている場合は、以下のメッセージウィンドウが表示されます。

フォームのコンボボックスで[入力チェック]を[いいえ]に設定

入力はできても、レコードの保存時に以下のメッセージウィンドウが表示されて保存はできません。

テーブル'T_得意先'にリレーションシップが設定されたレコードが必要なので、レコードの追加や変更を行うことはできません。

[レコードの追加や変更を行うことはできません。]のメッセージウィンドウ

フォームのコンボボックスで[入力チェック]を[はい]に設定している場合は、確定時に以下のメッセージウィンドウが表示されます。

フォームのコンボボックスで[入力チェック]を[はい]に設定

指定した項目はリストにありません。

リストから項目を選択するか、リスト項目と同じテキストを入力してください。

[指定した項目はリストにありません。]のメッセージウィンドウ

参考リレーションシップで参照整合性の設定をしていても、[入力チェック]の設定は[はい]にしておくほうが、ユーザーには分かりやすいと思います。

フォームのプロパティは、キーボードから[F4]キーを押すと、表示/非表示の設定ができます。

デザインビューをフォームビューに切り替えるには、[F5]キーを使用すると効率的です。

また、プロパティの[はい][いいえ]の切り替えは、設定項目でダブルクリックして設定できます。プルダウンリストから選択するより効率的だと思います。

プロパティの設定はダブルクリックで切り替え

また、コンボボックス内にカーソルを置くとすぐにリストを表示するように設定することもできます。

コンボボックス内にカーソルが移動すると自動でリストを表示するには

Accessの入力フォームでコンボボックスを使うことは多いと思います。 コンボボックスって、▼ボタンを押してリストを表示しますが、コンボボッ ...

続きを見る

検索

ほかの記事も検索してみませんか?

Access / Excel / PowerPoint / Word

関連記事30件

moneytizerPCのみ

Profile

執筆者/はま

-Office 2019 Access 2019

Copyright © 2001-2024 初心者のためのOffice講座 All Rights Reserved.

Copyright© 初心者のためのOffice講座 , 2024 AllRights Reserved Powered by AFFINGER4.