ACCESS コンボボックスで値リスト以外の値を入力する方法

コンボボックスで値リスト以外の値を入力する方法

ACCESSではコンボボックス(プルダウン)を作成して、既定の値から選択する入力フォームを作成できます。

ところが、運用しているとコンボボックスにあらかじめ設定した値以外を入力したい場合が出てきます。

今回は、コンボボックスで値リスト以外の値を入力する方法をご紹介します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSの基本的な使い方をご紹介していきます。

コンボボックスで値リスト以外の値を入力する方法

ACCESSのコンボボックスで値リスト以外の値を入力できるようにするには、コンボボックスのプロパティシートで入力チェックを行わないように設定を変更しましょう。

入力チェックを「いいえ」にします。

ただし、いくつか注意点もありますので以下に詳細に解説します。

コンボボックスで値リスト以外の値を入力すると

まず、コンボボックスで値リスト以外の値を入力するとどうなるでしょうか。
以下に、サンプルのフォームを作成しました。

担当者をプルダウンで選択できるようになっています。
ここで、値リストに無い担当者名を入力してみましょう。

すると、このように項目がリストに無い、というエラーが表示されます。

入力チェック

これは、コンボボックスの設定で入力チェックが行われているためです。
入力チェックの設定を解除することで、値リスト以外の値も入力できるようになります。

先ほどのフォームをデザインビューで見てみましょう。

コンボボックスのプロパティシートを見ると、入力チェックの項目が「はい」になっていますので、ここを「いいえ」に変更します。
こうすることで、入力値が値リストにある値か否かのチェックが行われなくなります。

この設定を変更すと、値リスト以外の値も入力できるようになります。

値リスト以外の値が入力される危険性

上記の設定を行うことで、コンボボックスに値リスト以外の値を入力できるようになりました。
しかし、これにはリレーショナルデータベースを運用する上での危険性もあります。

先ほどのフォームを例に説明します。

先ほどのフォームはレコードソースに、T_comboというテーブルを指定しています。

つまり、フォームで入力した値は下記のようにT_comboテーブルに格納されます。

今回入力した担当者名はテキスト型のフィールドで他のテーブルとのリレーションは設定していません。
そのため、値は何が入っても困らない状態です。

一方で、同じテーブルにある担当者IDは、別のテーブルとのリレーション設定を行ってあります。

この担当者IDをフォームのコンボボックスで入力する際に、値リスト以外の値が入ってくると、リレーションが崩れる要因となってしまいます。

このように、リレーショナルに設計されているデータベースにおいて、開発者が予期しない値をコンボボックスで入力させることにはリスクもありますので、十分考慮の上で開発をしてください。

以上、コンボボックスで値リスト以外の値を入力する方法をご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス一覧

最後までお読みいただき、ありがとうございました。